沉沦人生

---^_^

统计

最新评论

[导入]利用maven2为工程的jar文件内部打入版本信息


网站:JavaEye 作者:danlley 发表时间: 2007-07-17 13:42 此文章来自于 http://www.JavaEye.com
声明:本文系JavaEye网站原创文章,未经JavaEye网站或者作者本人书面许可,任何其他网站严禁擅自发表本文,否则必将追究法律责任!
原文链接: http://danlley.javaeye.com/blog/101981

1.修改pom.xml文件,在project节点下加入以下代码:




  <build>

    <resources>

      <resource>

        <directory>src/main/resources</directory>

        <filtering>true</filtering>

      </resource>

    </resources>

  </build>




 

其中路径main/resources用来存放设置生成版本信息的资源文件application.properties,其内容如下:




# application.properties

application.name=${pom.name}

application.version=${pom.version}




其中 : ${pom.name}代表你在pom.xml中配置的工程名,而${pom.version}是你工程的当前版本号。

 

 

 

2.在命令行执行:mvn process-resources,运行结果如下:




[INFO] Scanning for projects...

[INFO] -------------------------------------------------------------------------

---

[INFO] Building my-app

[INFO]    task-segment: [process-resources]

[INFO] -------------------------------------------------------------------------

---

[INFO] [resources:resources]

[INFO] Using default encoding to copy filtered resources.

[INFO] ------------------------------------------------------------------------

[INFO] BUILD SUCCESSFUL

[INFO] ------------------------------------------------------------------------

[INFO] Total time: 1 second

[INFO] Finished at: Sun Apr 15 13:28:54 CST 2007

[INFO] Final Memory: 2M/4M

[INFO] ------------------------------------------------------------------------




 

说明命令已经执行成功,现在切换到D:\mywork\my-app\target\classes路径下,你可以发现资源文件application.properties,用文本编辑工具将其打开,内容如下:




# application.properties

application.name=my-app

application.version=1.0-SNAPSHOT




 

 

这时,我们在pom.xml中配置的工程名称及版本信息已经成功生成了。

 

3.运行mvn package ,application.properties将会被打入到jar文件中。

 

4.为application.properties定义扩展信息,maven2提供两种有效的途径定义属性文件的扩展信息

 

方法一:

 

 第一步: 在我们新加入的build节点中增加代码如下:




    <filters>

      <filter>src/main/filters/filter.properties</filter>

    </filters>




也就是说,你除了在这里添加这段代码外,还需要在相应的路径中增加一个filters文件夹,并在其下增加一个filter.properties属性文件。

 

第二步:设置 filter.properties 文件




# filter.properties

my.filter.value=hello!



 

第三步:扩充message=${my.filter.value}到application.properties文件中。

第四步: 再次执行:mvn process-resources,application.properties文件中的内容如下:




# application.properties

application.name=my-app

application.version=1.0-SNAPSHOT

message=hello!




 

此时可以看到message=hello!已经被加入到了配置文件中。

 

 

方法二:不使用filter.properties配置文件,直接在pom.xml的project节点中进行定义,其代码如下:




  <properties>

    <my.filter.value>hello</my.filter.value>

  </properties>




此时不再需要filter.properties。运行命令mvn process-resources,你将得到同样的结果。

 

 

说明: 这两种方法需要根据工程的具体情况来决定,如果工程配置相对复杂,则第一种方式不失为一种很好的解决方案,我们可以利用第一种方式对工程配置进行分类管理。如果工程相对较小,pom.xml中的配置信息也相对较少的情况下建议采用直接写入到pom.xml中的方式。

 

 

另外,利用maven2,我们还可以在配置文件中得到我们的系统信息,在 application.properties 中添加以下代码:




java.version=${java.version}

command.line.prop=${command.line.prop}




 

 

执行命令:

mvn process-resources "-Dcommand.line.prop=hello again"

 

打开生成后的  文件,你将会发现其中多出来了两条信息,一条是我们获得的执行环境信息,另一条则是由我们在执行命令时,即时写入的信息。




java.version=1.5.0_06

command.line.prop=hello again




 

 

 

 

 

                                     ----------------伏羲狂徒




《 利用maven2为工程的jar文件内部打入版本信息 》 的评论也很精彩,欢迎您也添加评论。查看详细 >>





JavaEye推荐
上海:优秀公司德比:高薪诚聘 资深Java工程师
广州:优易公司:诚聘Java工程师,开发经理
上海:尤恩斯国际集团:诚聘开发工程师
北京:优秀公司NHNChina招聘:WEB开发,系统管理,JAVA开发, DBA



文章来源: http://danlley.javaeye.com/blog/101981

posted on 2007-07-17 13:42 伏羲狂徒 阅读(344) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航: