Cookbook:如何将构建时间添加到 JAR 清单?
概括
这个秘籍描述了如何通过调用Apache Ant任务将构建时间添加到 JAR 清单中。
先决条件插件
以下是使用的插件列表:
| 插入 | 版本 | 
|---|---|
 antrun | 
1.1 | 
 jar | 
2.2 | 
样本生成清单
Manifest-Version: 1.0 Archiver-Version: Plexus Archiver Created-By: Apache Maven Built-By: vsiveton Build-Jdk: 1.5.0_12 Build-Time: 2008-01-18 06:53:13
食谱
配置 MANIFEST.MF
要生成构建时间并将其添加到 Jar Manifest 中,我们使用MANIFEST.MF位于src/main/resources/META-INF目录中的 ,其中包含要插入的构建时间值,即
Build-Time: ${build.time}配置 POM
由于 <filtering> 元素,来自 Maven的值 ${build.time}MANIFEST.MF将被过滤。该值取自文件${basedir}/target/filter.properties,由 <filter> 元素列出,即
    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <filtering>true</filtering>
      </resource>
    </resources>
    <filters>
      <filter>${basedir}/target/filter.properties</filter>
    </filters>
配置 Maven Antrun 插件
该filter.properties文件将由 Antrun 插件生成。我们使用两个核心 Ant 任务,<tstamp>和<echo>。
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-antrun-plugin</artifactId>
        <executions>
          <execution>
            <phase>generate-resources</phase>
            <goals>
              <goal>run</goal>
            </goals>
            <configuration>
              <tasks>
                <!-- Safety -->
                <mkdir dir="${project.build.directory}"/>
                <tstamp>
                  <format property="last.updated" pattern="yyyy-MM-dd hh:mm:ss"/>
                </tstamp>
                <echo file="${basedir}/target/filter.properties" message="build.time=${last.updated}"/>
              </tasks>
            </configuration>
          </execution>
        </executions>
      </plugin>
配置 Maven Jar 插件
最后一个配置是设置defaultManifestFile为true启用它。
<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-jar-plugin</artifactId>
  <configuration>
    <useDefaultManifestFile>true</useDefaultManifestFile>
  </configuration>
</plugin>
运行 Maven
只需调用 Maven 生成包:
mvn package
其他提示
您可以将 Jar 插件配置调整到 War 插件中。



