使用maven2将warversion清单添加到war清单中

时间:2010-06-02 21:57:30

标签: java maven-2 build-automation war

我想找到一个maven native(即不调用外部程序)来在war war中注入svn修订版。

有人知道这样做的方法吗?

我发现如何将subversion版本添加到jar文件中的清单中,但不包含war文件。

我搜索了SO,但没有具体找到这个问题。

2 个答案:

答案 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>