我想找到一个maven native(即不调用外部程序)来在war war中注入svn修订版。
有人知道这样做的方法吗?
我发现如何将subversion版本添加到jar文件中的清单中,但不包含war文件。
我搜索了SO,但没有具体找到这个问题。
答案 0 :(得分:4)
我想找到一个maven native(即不调用外部程序)来在war war中注入svn修订版。
使用svnjava
提供商的Build Number Maven Plugin可以做到这一点:
如果您需要执行插件 在路径中没有任何svn的机器 你可以配置mojo来使用 svnjava提供者。
<build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>buildnumber-maven-plugin</artifactId> <version>1.0-beta-3</version> <executions> <execution> <phase>validate</phase> <goals> <goal>create</goal> </goals> </execution> </executions> <configuration> <doCheck>true</doCheck> <doUpdate>true</doUpdate> <providerImplementations> <svn>javasvn</svn> </providerImplementations> </configuration> </plugin> </plugins> </build>
Build Number Maven插件在${buildNumber}
属性中设置内部版本号,然后您可以在POM中使用该内容。
我发现如何将subversion版本添加到jar文件中的清单中,但不包含war文件。
然后,要在战争的MANIFEST中添加内部版本号,请按照Usage页面中的说明配置插件:
<build>
...
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.0.2</version>
<configuration>
<archive>
<manifest>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
</manifest>
<manifestEntries>
<Implementation-Build>${buildNumber}</Implementation-Build>
</manifestEntries>
</archive>
</configuration>
</plugin>
</plugins>
</build>
答案 1 :(得分:2)
试试this。大约一半,寻找maven-war-plugin
<build>
...
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.0.2</version>
<configuration>
<archive>
<manifest>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
</manifest>
<manifestEntries>
<Implementation-Build>${buildNumber}</Implementation-Build>
</manifestEntries>
</archive>
</configuration>
</plugin>
</plugins>
</build>