我升级了一大建立系统的使用Maven2而不是蚂蚁,而且我们有两个相关的要求,我被卡住了:

  1. 我们需要产生时间标记的项目,所以一个部分 相位(或地方),而不是建设

    project-1.0-SNAPSHOT.jar
    

    我们 应该建筑

    project-1.0-20090803125803.jar
    

    (那里的 20090803125803 只是一个 YYYYMMDDHHMMSS 时间戳记的当罐子 建).

    只有真正的要求是的时间戳是一部分 产生的文件的文件。

  2. 同一时间戳有被包括在一个 版本。性能 文件 内部产生的罐子。

这种信息包括在该产生的 pom。性能 当你跑, 例如, mvn package 但是评论:

#Generated by Maven
#Mon Aug 03 12:57:17 PDT 2009

任何想法从哪里开始将是有帮助的!谢谢!

有帮助吗?

解决方案

玛文版本2.1.0,包括-M1或新的具有内置在特殊的可变 maven.build.timestamp.

<build>
  <finalName>${project.artifactId}-${project.version}-${maven.build.timestamp}</finalName>
</build>

看到家 文档 更多的细节。


老年家版本,一个看看 专家-时间戳的插件内部版本号-玛文件.

如果您使用的家时间戳件,可以使用这样的事情操纵导致的神器名称。

<build>
   <finalName>${project.artifactId}-${project.version}-${timestamp}</finalName>
</build>

这种配置,用于内部版本号-玛文件应该建立一个${时间戳}酒店,其中包含的时间戳值。似乎没有以一种方式来创建的 版本。性能 文件直接与这个插件。

<configuration>
   <format>{0,date,yyyyMMddHHmmss}</format>
   <items>
      <item>timestamp</item>
   </items>

</configuration>

这些 网站 还值得检查。

其他提示

如果你使用一个版本的家>=2.1.0,包括-M1,然后你可以用美元{家.建立。时间戳}财产。

更多信息,见:http://maven.apache.org/guides/introduction/introduction-to-the-pom.html#Available_Variables

如果你需要时在一个时区,比其他UTC(默认当你使用 ${maven.build.timestamp})可以使用 build-helper-maven-plugin.看到更多 简短的例子如何使用的建立帮助家插件的目标.

无论如何,这是我已经得到了 时间戳在格林尼治标准时间-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>

这个职位(特别是以下部分)也是非常有用和实际用于这一问题。

冲压版本的数量和建立时间性的文件与家

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>
....

并包的名字是 MyProject-1.0. 0-2015_03_02_13_46.war

快照时部署项目,通过默认时间戳是使用,除非替代它的 部署插件.如果你没有得到独特的时间戳,这可能是下一个构的专家库。像其他回答说,虽然使用的时间戳或内部版本号件释放。

我们需要一个新的回答:) 它是建立在现在: http://maven.apache.org/guides/introduction/introduction-to-the-pom.html#Available_Variables

使用 ${maven.build.timestamp}

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top