如何使用maven从subversion获取修订版号?

时间:2009-03-17 14:51:40

标签: svn deployment maven-2 version-control

我想把修订号放在webapp的主页上,我怎么能用maven做呢?

P.S。它的两个部分问题,如何获得修订号以及如何将其写入项目中的选定文件。

4 个答案:

答案 0 :(得分:26)

maven build number插件是可行的方法。这里有一个如何使用它的例子:

http://www.mojohaus.org/buildnumber-maven-plugin/usage.html

您可以将它与maven jar插件一起使用,以将SVN提交号打印到您的 清单。

这是一个比使用包含SVN提交号的文件更好的解决方案,因为这会增加比实际需要更多的移动部分。

答案 1 :(得分:7)

如果您正在使用subversion,则可以使用此插件将SVN修订版号作为maven属性提供

http://code.google.com/p/maven-svn-revision-number-plugin/

我将它与jar插件结合起来,将SVN修订版添加到我们jar和war的MANIFEST.MF文件中。

答案 2 :(得分:4)

如果您拥有svn命令行应用程序,则可以使用以下代码 - 我们在项目中使用它(略有改动)

<build>
  <plugins>
    <plugin>
      <artifactId>maven-antrun-plugin</artifactId>
      <executions>
        <execution>
          <phase>generate-resources</phase>
          <goals>
            <goal>run</goal>
          </goals>
          <configuration>
            <tasks>
              <mkdir dir="${project.build.directory}/generated-web-resources/svn"/>
              <exec dir="${basedir}" executable="svn"
                  failifexecutionfails="false"
                  output="${project.build.directory}/generated-web-resources/svn/svnver.jsp">
                <arg line="info"/>
              </exec>
            </tasks>
          </configuration>
        </execution>
      </executions>
    </plugin>
    <plugin>
      <artifactId>maven-war-plugin</artifactId>
      <configuration>
        <webResources>
          <resource>
            <directory>${project.build.directory}/generated-web-resources/svn</directory>
          </resource>
        </webResources>
        <warSourceExcludes>**/_svn/**</warSourceExcludes>
      </configuration>
    </plugin>
  </plugins>
</build>

答案 3 :(得分:1)

你没有说你正在使用什么平台,你会原谅我对maven不熟悉。我想它可以调用外部程序,你知道如何让它做到这一点。

如果在Unix平台上,您应该使用程序svnversion命令,并将其输出 - 这是指定的工作路径的版本号 - 传递给文件,然后您可以将其合并到您的网页中。

svnversion --help

显示它可以做些什么。

如果是Windows,并且您正在使用TortoiseSVN客户端,那么就有一个与之捆绑的优秀Windows命令行程序SubWCRev。此实用程序将在您提供的文本文件中展开宏,并提供您正在使用的svn存储库的各种详细信息 - 您可以控制输出的格式。一切都很方便。帮助文件位于:http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-subwcrev.html