如何使用Maven从Subversion获取修订版本号?

35

我想在 Web 应用的主页面上显示版本号,如何使用 Maven 实现这一功能?

附言:这是一个两部分的问题,分别是如何获取版本号以及如何将其写入项目中选择的文件。

4个回答

27

maven构建号插件是首选。如何使用它的示例在此处:

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

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

这比使用包含SVN提交号的文件更好,因为这会增加不必要的移动部分。


4
我在http://apollo.ucalgary.ca/tlcprojectswiki/index.php/Public/Project_Versioning_-_Best_Practices#Build_Versioning找到了有用的附加信息,包括检索存储在清单中的版本号的代码。 - Jim Downing
1
ucalgary的链接已经失效。Wayback机器的链接在这里:http://web.archive.org/web/20101021043408/http://apollo.ucalgary.ca/tlcprojectswiki/index.php/Public/Project_Versioning_-_Best_Practices - Snekse

7

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>

1

您没有说明使用的平台,而且请原谅我对maven不熟悉。我假设它可以调用外部程序,并且您知道如何让它这样做。

如果在Unix平台上,您应该使用svnversion命令,并将其输出(指定工作路径的版本号)导入文件中,然后您可以根据需要将其合并到网页中。

svnversion --help

详细展示它的功能。

如果您使用的是Windows,并且正在使用TortoiseSVN客户端,则其中有一个名为SubWCRev的优秀Windows命令行程序与其捆绑在一起。此实用程序将扩展您提供的文本文件中的宏,其中包含您正在使用的svn存储库的各种详细信息 - 您可以控制输出格式。非常方便。有关此的帮助文件在这里:http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-subwcrev.html


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接