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 插件中。



