我需要通過從我的Web Java應用程序的前端http響應發送內部版本號。但是在構建時設置它的最好和正確的方法是什麼?我在竹子上使用maven。我知道我可以pass version number to maven。但我不確定接下來的步驟。我只考慮從maven執行ant,從ant編寫版本到屬性文件,並使用來自java應用程序的資源讀取它。請給出一些建議。謝謝如何使用maven將版本號設置爲java web應用程序?
3
A
回答
7
我將包含您的版本號作爲manifest.mf的一部分。如果您打算使用SVN修訂版(或任何其他SCM,您只需要查找等同的插件)作爲版本號,則可以使用maven-svn-revision-number-plugin以及maven-war-plugin。
下面是關於如何使用SVN使用它的一個例子:
<plugin>
<groupId>com.google.code.maven-svn-revision-number-plugin</groupId>
<artifactId>svn-revision-number-maven-plugin</artifactId>
<version>1.13</version>
<executions>
<execution>
<goals>
<goal>revision</goal>
</goals>
</execution>
</executions>
<configuration>
<entries>
<entry>
<prefix>scm</prefix>
</entry>
</entries>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.2</version>
<configuration>
<archive>
<manifestEntries>
<SCM-Revision>${scm.revision}</SCM-Revision>
</manifestEntries>
</archive>
</configuration>
</plugin>
然後從你的控制器/ Servlet的閱讀:
ServletContext application = getServletConfig().getServletContext();
InputStream inputStream = application.getResourceAsStream("/META-INF/MANIFEST.MF");
Manifest manifest = new Manifest(inputStream);
Attributes attr = manifest.getMainAttributes();
String value = attr.getValue("SCM-Revision");
9
我看到沒有問題,使版本文件(我們在我們的項目中使用這種方法)。如果您知道在構建時您將擁有一些財產(f.e. ${build.version}
),則可以使用篩選來實現您的目標。
1)具有以下內容
Version: ${build.version}
2)以下內容添加到您的pom.xml src/main/resources
下創建版本的文件:
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
3)建設項目。篩選的版本文件應該出現在target/classes
中。
2
我建議使用buildnumber-maven-plugin,這將設置${buildNumber}
屬性,你可以這樣寫MANIFEST.MF
(如果是WAR):
<plugin>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<archive>
<manifestEntries>
<SCM-Revision>${buildNumber}</SCM-Revision>
</manifestEntries>
</archive>
</configuration>
</plugin>
然後,您可以使用java.util.jar.Manifest類閱讀它。看看我們如何在jcabi-manifests中做到這一點。下面是一個真實的例子(我們正在使用Git):pom.xml。該應用程序部署到Heroku:www.s3auth.com。您可以在網頁的右下角看到修訂號。
相關問題
- 1. 將VSO構建/發佈版本號設置爲Azure應用程序設置
- 2. 如何在Android Studio中設置應用程序的版本號
- 3. 在Web應用程序中將Java NLS_LANGUAGE設置爲java
- 4. 如何在Java Web應用程序中設置區域設置?
- 5. 如何爲Java Web應用程序設置參數
- 6. 如何在java中爲Web應用程序設置圖標?
- 7. 如何爲Ruby應用程序設置指定的gem版本?
- 8. 如何使用Azure Powershell SDK爲Azure Web應用程序設置Java/Tomcat選項
- 9. 爲GWT Web應用程序維護構建版本號
- 10. 如何將Java小程序轉換爲Web應用程序?
- 11. Visual Studio - .EXE控制檯應用程序的設置版本號
- 12. 設置爲ASP.NET Web應用程序
- 13. 如何將應用程序配置爲默認使用舊版本庫
- 14. 使用EJB3的Maven Web應用程序
- 15. Web應用程序中的Maven構面版本問題
- 16. Java - 在導出期間設置應用程序捆綁版本
- 17. 單獨使用actionScript獲取和設置應用程序的flex版本號
- 18. 排序應用程序版本號
- 19. 如何將jar應用程序設置爲使用Java 6而不是7
- 20. 如何在QT for Mac OS中設置應用程序版本號?
- 21. 如何使用Java將普通Web應用程序轉換爲多語言Web應用程序?
- 22. Xcode 7如何設置應用程序版本?
- 23. 如何設置我的應用程序支持的iOS版本?
- 24. 如何使Web應用程序獨立於Ant版本構建
- 25. 如何設置易於使用的web應用程序部署
- 26. maven如何排序版本號?
- 27. 如何將Maximo Anywhere應用程序部署爲新的應用程序版本?
- 28. 如何將我的應用程序作爲試用版本?
- 29. 設置甲骨文幫助Web(OHW)爲Java應用程序
- 30. 如何使用nugetter使用內部版本號設置nuget軟件包版本
我喜歡它,謝謝! –