[英]SVN revision number accessible in compiled GWT package
我有一個GWT項目,其源代碼在SVN中管理,使用Maven打包,並通過Hudson管理其構建。 我想在應用程序根HTML文件底部的注釋中看到最新簽入/構建的SVN修訂版號。 我不關心在開發過程中發生這種情況!
以下是我迄今為止用Google搜索的選項,但沒有成功:
有沒有人有一個完整的,端到端的例子來說明如何使這些工作? 我一直在尋找代碼/配置的小片段,它們完成了工作的一部分,但並不是我正在尋找的任何東西。
謝謝!
通過組合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將填充它。
此解決方案適用於那些持續獲取{SVN_REVISION}而不是目標文件中的實際SVN_REVISION值的人 。
我的解決方案也是使用過濾。 但是,因為我希望SVN_REVISION出現在我的gwt應用程序的主html頁面內(作為“打擊”用戶緩存的一種方式,確保如果我們執行新的構建,然后用戶下載最新的html文件),我不知道能夠使用Jason Terk的解決方案。 html文件只打印{SVN_REVISION}而不是實際的SVN_REVISION值。
所以我在<properties>
定義了一個屬性:
<properties>
...
<buildVersion>${SVN_REVISION}</buildVersion>
...
</properties>
然后我確定我正在過濾相應的html文件(如Jason的解決方案中所述),然后在html文件中“提取”SVN_REVISION,如下所示:
<script type="text/javascript">
...
var versionIdSuffix = '?v=${buildVersion}';
....
</script>
簡而言之 - 我無法直接從html文件中引用{SVN_REVISION}屬性,所以我通過<properties>
“包裝”它,讓maven引用它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.