2011-10-22 56 views
1

我正在Maifa構建和存儲文件在Artifactory中運行。我面臨的一個問題是,當我嘗試使用-snapshot版本覆蓋Artifactory中的二進制文件時。我嘗試使用Maven內部編號插件,但運行到問題。我對此有所瞭解。 http://blog.codehangover.com/track-every-build-number-with-maven/在Maven中附加二進制文件的內部版本號

下面介紹我做了什麼?

  1. 用以下行更新了masterpom.xml。

      <plugin> 
          <groupId>org.codehaus.mojo</groupId> 
          <artifactId>buildnumber-maven-plugin</artifactId> 
          <version>1.0-beta-3</version> 
          <executions> 
            <execution> 
            <phase>validate</phase> 
            <goals> 
             <goal>create</goal> 
            </goals> 
            </execution> 
          </executions> 
            <configuration> 
             <doCheck>false</doCheck> 
             <doUpdate>false</doUpdate> 
             <format>${version}.{0,number}</format> 
             <items> 
              <item>buildNumber</item> 
             </items> 
            </configuration> 
         </plugin> 
    
  2. 現在我更新耳朵和webproject的POM如下

        <build> 
            <finalName>${project.artifactId}-${project.version}.${buildNumber}</finalName> 
           </build> 
    

當我跑MVN乾淨安裝,得到了產生的耳朵和戰爭,但是當我檢查了戰爭耳內我發現它就像war-1.0-SNAPSHOT-null.war一樣。我相信戰爭和耳朵無法獲得buildNumber參數。我能夠成功生成buildNUmber.property文件,並能夠通過運行buildnumber:create插件來增加數量。這裏是我的問題

  1. 我在這裏做錯了,爲什麼沒有選擇buildNumber參數。
  2. 另外我想生成所有的二進制文件,包括以下格式的二進制文件binary-version-Snapshot。$ {buildNumber}。所以我需要更新每個文件的POM或其他任何方式來更新它?
  3. 此外,我們正在使用Hudson構建連續集成,我們希望將開發人員構建與Hudson構建編號分開。如果我們不想在Hudson構建之後檢入buildNumber.properties,我們如何實現這一點。

回答

1

要獲得獨特的快照,請使用uniqueVersion標誌(請參閱James Lorenzen's Blog)。如果您使用maven目標部署:deploy-file默認情況下uniqueVersion標誌爲true。在我的公司,我們有以下政策。只有「官方」快照纔會進入存儲庫。 「官方」快照是建立在我們的參考系統(我們的Jenkins ci服務器)上的快照。我們不需要快照的獨特功能,因爲我們讓詹金斯存檔工件。通過這種方式,如果我們也想使用Jenkins,我們總是可以回到某個版本。如果構建中斷,快照將不會部署到回購。

對你的第二個問題;我的理解是你需要更新每個pom文件。但是,由於這是一次性改變,所以不應該是太多的負擔。

我不完全理解你的第三個問題(「......獨立開發人員用哈德森版本號建立...」)。如果你想爲Hudson完成的每個構建添加內部版本號,你有幾個選擇。

  1. 您可以在部署時添加字符串作爲分類器。 Maven會將該分類器添加到文件名中(artifactID-version-classifier.jar - 例如my.company.calendar-0.0.1-Snapshot-Hudson.jar)。該工件將通過將分類器添加到依賴關係來檢索。

  2. 將另一個參數添加到您的maven調用 - outputfilename($ {project.build。finalName},見maven docu

  3. 改變你的版本字符串以類似

相關問題