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