jcs*_*k74 17 java version manifest maven
我在项目的pom.xml中有以下内容,我认为应该显示在生成的WAR文件中使用的Maven版本:
<build>
...
<plugins>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
<archive>
<manifest>
<addClasspath>false</addClasspath>
</manifest>
<manifestEntries>
<Build-Time>${maven.build.timestamp}</Build-Time>
<Build-Host>${agent.name}</Build-Host>
<Build-User>${user.name}</Build-User>
<Build-Maven>Maven ${maven.version}</Build-Maven>
<Build-Java>${java.version}</Build-Java>
<Build-OS>${os.name}</Build-OS>
<Build-Label>${project.version}</Build-Label>
<Build-Path>${basedir}</Build-Path>
</manifestEntries>
</archive>
</configuration>
</plugin>
...
</plugins>
...
</build>
Run Code Online (Sandbox Code Playgroud)
创建的MANIFEST.MF看起来正确,除了在这种情况下$ {maven.version}未替换为实际版本号3.0.4的Build-Maven行之外.
Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Created-By: Apache Maven
Built-By: stocjon
Build-Jdk: 1.6.0_35
Build-Host:
Build-Java: 1.6.0_35
Build-Label: 1.0.0-SNAPSHOT
Build-Maven: Maven ${maven.version}
Build-OS: Windows XP
Build-Path: C:\Development\project_name
Build-Time: 15:38:50 21-Sep-2012
Build-User: user_name
Run Code Online (Sandbox Code Playgroud)
任何想法为什么Maven版本没有在MANIFEST.MF中填充?
非常感谢帮助.
谢谢乔恩
你需要添加这个插件:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.5</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>maven-version</goal>
</goals>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
点击此处了解详情.
我们不再需要build-helper-maven-plugin,因为该功能(MSHARED-38)已添加到组件maven-archiver:2.5,于2012年2月发布(发行说明).
这个组件被Maven插件使用,如maven-jar-plugin,maven-war-plugin,maven-ear-plugin等.
使用此功能的这些插件的版本是:
所以现在我们默认在档案的manifest.mf中有这个条目:
创建者:Apache Maven $ {maven.version}
至少从 maven-jar 插件的 2.4 版本开始,默认情况下将以下条目添加到 jar 中 META-INF 中的 MANIFEST.MF 文件中:
Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Built-By: abcUser
Created-By: Apache Maven 3.3.3
Build-Jdk: 1.8.0_77
Run Code Online (Sandbox Code Playgroud)
要添加项目版本和其他实现细节,只需将以下内容添加到 maven-jar-plugin 中(在pluginManagement部分或在build -> plugins部分中:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<manifest>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
</manifest>
</archive>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
要添加构建时间等内容,请添加以下内容:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<manifest>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
</manifest>
<manifestEntries>
<Build-Time>${maven.build.timestamp}</Build-Time>
</manifestEntries>
</archive>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
<properties>
可以通过在pom.xml 部分中使用以下属性来更改构建时格式:
<maven.build.timestamp.format>yyyy-MM-dd HH:mm z</maven.build.timestamp.format>
Run Code Online (Sandbox Code Playgroud)
上述所有内容的输出类似于:
Manifest-Version: 1.0
Implementation-Title: UI
Implementation-Version: 2.0.5-SNAPSHOT
Archiver-Version: Plexus Archiver
Built-By: abcUser
Implementation-Vendor-Id: com.xyz.abc.dbe
Build-Time: 2016-12-23 12:04 UTC
Created-By: Apache Maven 3.3.3
Build-Jdk: 1.8.0_77
Implementation-Vendor: XYZ Corporation
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
13332 次 |
最近记录: |