Rya*_*yan 37 java ant maven-2 upgrade
我正在升级一个大型构建系统以使用Maven2而不是Ant,我们有两个相关的要求,我坚持:
我们需要生成一个带时间戳的工件,因此是包 阶段(或任何地方)的一部分,而不是构建
project-1.0-SNAPSHOT.jar
Run Code Online (Sandbox Code Playgroud)
我们应该建设
project-1.0-20090803125803.jar
Run Code Online (Sandbox Code Playgroud)
(这
20090803125803
只是YYYYMMDDHHMMSS
罐子制造时的时间戳).
唯一真正的要求是时间戳是生成文件的文件名的一部分.
必须在生成的jar 内的version.properties文件中包含相同的时间戳.
当您运行时,此信息包含在生成的pom.properties中,例如,mvn package
但已被注释掉:
#Generated by Maven
#Mon Aug 03 12:57:17 PDT 2009
Run Code Online (Sandbox Code Playgroud)
任何关于从哪里开始的想法都会有所帮助!谢谢!
Juh*_*älä 48
Maven版本2.1.0-M1或更新版本内置了特殊变量maven.build.timestamp
.
<build>
<finalName>${project.artifactId}-${project.version}-${maven.build.timestamp}</finalName>
</build>
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅Maven 文档.
对于较旧的Maven版本,请查看maven-timestamp-plugin或buildnumber-maven-plugin.
如果你使用maven-timestamp-plugin,你可以使用这样的东西来操作产生的工件名称.
<build>
<finalName>${project.artifactId}-${project.version}-${timestamp}</finalName>
</build>
Run Code Online (Sandbox Code Playgroud)
而buildnumber-maven-plugin的这个配置应该创建一个$ {timestamp}属性,该属性包含时间戳值.似乎没有办法直接使用此插件创建version.properties文件.
<configuration>
<format>{0,date,yyyyMMddHHmmss}</format>
<items>
<item>timestamp</item>
</items>
</configuration>
Run Code Online (Sandbox Code Playgroud)
小智 38
如果您使用的是Maven> = 2.1.0-M1的版本,那么您可以使用$ {maven.build.timestamp}属性.
有关详细信息,请参阅:http: //maven.apache.org/guides/introduction/introduction-to-the-pom.html#Available_Variables
lmi*_*lmh 16
如果您需要UTC以外的时区(使用时的默认值${maven.build.timestamp}
),您可以使用build-helper-maven-plugin
.有关如何使用Build Helper Maven插件的目标的详细示例,请参阅更多内容.
无论如何,这就是我在GMT-5中获得时间戳并将其放在我的工件的最终名称中的方式:
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.9.1</version>
<executions>
<execution>
<id>timestamp-property</id>
<goals>
<goal>timestamp-property</goal>
</goals>
<configuration>
<name>current.time</name>
<pattern>yyyyMMdd-HHmmss</pattern>
<timeZone>GMT-5</timeZone>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<finalName>${project.name}-${current.time}</finalName>
</configuration>
</plugin>
</plugins>
</build>
Run Code Online (Sandbox Code Playgroud)
这篇文章(特别是下面的部分)对于这个问题也非常有用和实用.
pom看起来像这样
...
<properties>
....
<!-- Timestamp of build -->
<timestamp>${maven.build.timestamp}</timestamp>
<maven.build.timestamp.format>yyyy_MM_dd_HH_mm</maven.build.timestamp.format>
</properties>
...
<build>
<finalName>${project.artifactId}-${project.version}-${timestamp}</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
....
</plugin>
</plugins>
</build>
....
Run Code Online (Sandbox Code Playgroud)
并且包名是 MyProject-1.0. 0-2015_03_02_13_46.war
归档时间: |
|
查看次数: |
59164 次 |
最近记录: |