2012-08-02 58 views
1

參數我正在開發使用項目版本:的Eclipse:項目版本在多個文件中

  1. 版本名稱輸入在POM文件

  2. 它也被用來作爲to-be-created .msi的一部分文件名:file_[version].msi

  3. 它是在一個服務名稱使用,這個項目是從.msi 這些PARAMS保持在安裝位置後如下:

    一個).properties文件作爲Spring param: version=0340

    b)以pom.xml中<package-version>0340</package-version>

    c)中作爲文件<filename><version>.wxs,通過build.xml

    d)中使用,可以在上述.wxs文件作爲MsiProductVersion = "3.4.0"(注意點)

有沒有wa y在其他config文件中定義一個參數,該文件將用適當的數據填充這些文件,以便僅將版本保存在一個位置。現在很容易忽略一個param,並建立一個340.msi,它將顯示330 Service作爲它的名字。我覺得很難,因爲並非所有的文件都屬於一個模型(如Spring)。

回答

0

您可以配置Maven以替換資源中的「變量」。添加到您的POM:

<build> 
    <resources> 
     <resource> 
      <directory>src/main/resources</directory> 
      <filtering>true</filtering> 
     </resource> 
     <resource> 
      <directory>src/test/resources</directory> 
      <filtering>true</filtering> 
     </resource> 
    </resources> 
    ... 
</build> 

現在你可以使用${project.version},它會從POM中的所有文件的版本低於src/main/resourcessrc/test/resources所取代。

至於其他文件,您可以使用嵌入的Ant task in your POM或編寫一個小腳本(Ant,bash,無論您喜歡)讀取POM並從模板創建其他三個文件。

另一個選擇是編寫一個單元測試,它讀取所有文件並確保它們包含正確的值。這樣,版本不會自動更新,但a)版本不會經常更改(這可能會導致您的問題),並且b)測試比腳本中的更強大(它們可以,例如,讀取&更新二進制文件)。

相關問題