java – 在编译的GWT包中可访问的SVN修订号

我有一个GWT项目,其源代码在SVN中管理,使用Maven打包,并通过Hudson管理其构建.我想在应用程序根HTML文件底部的注释中看到最新签入/构建的SVN修订版号.我不关心在开发过程中发生这种情况!

以下是我迄今为止用Google搜索的选项,但没有成功:

>在构建之后,我可以让Hudson写入构建/修订号
到其构建输出文件之一(即应用程序根HTML)
文件)?我见过没办法做到这一点.
>我可以让Maven将SVN修订版编号写入其中一个版本
输出文件(即应用程序根HTML文件)?我已经看到了方法
Maven将此文件写入JAR / WAR清单文件(然后可以
Java代码中访问),但我不确定它是否适用于GWT
(我对GWT的内部结构并不是特别了解).
>我可以将SubVersion作为预提交挂钩,将版本号写入特定文件吗?我知道很容易将版本号写入您正在编辑的文件中,但不太确定要写入一个完全独立的文件(因此无论是否在该提交中更改,它都会在每次提交时更新).

有没有人有一个完整的,端到端的例子来说明如何使这些工作?我一直在寻找代码/配置的小片段,它们完成了工作的一部分,但并不是我正在寻找的任何东西.

谢谢!

解决方法:

通过组合Maven和Hudson,您可以实现您所需要的.在这个例子中,让我们假设您希望Web应用程序根目录下的文件version.txt包含修订版本.

version.txt:

${SVN_REVISION}

在你的项目的pom.xml中启用maven-war-plugin中的过滤:

<plugin>
  <artifactId>maven-war-plugin</artifactId>
  <version>2.1</version>
  <configuration>
    <webResources>
      <webResource>
        <directory>src/main/webapp</directory>
        <filtering>true</filtering>
        <includes>
          <include>version.txt</include>
        </includes>
      </webResource>
    </webResources>
  </configuration>
</plugin>

确保Hudson正在构建您的项目. Subversion checkout,它将为每个构建设置SVN_REVISION环境变量,Maven将填充它.

上一篇:java – Eclipse作为IDE Mercurial进行版本控制?错误跟踪=好主意?


下一篇:开源前端脚本错误监控及跟踪解决项目BadJS试用