2008-11-07 45 views
1

由於多個開發人員在同一個Tomcat應用程序上工作,我想根據當前用戶和版本控制客戶機/視圖來告訴應用程序安裝到不同的路徑。建築與螞蟻:動態構建選項?

因此,如果Bob正在構建,應用程序應安裝在Bob的測試環境中,可能是/ bob1或類似的東西。 Bob可能有多個版本控制客戶端/視圖/工作區,因此他可以擁有/ bob1,/ bob2,/ bob3等。

安裝位置在build.properties文件中指定。有沒有辦法避免檢查該文件,並針對每個特定用戶和版本控制視圖進行更改?

「ant install」可以帶參數或配置爲考慮安裝目標的環境變量嗎?

+0

你能ellaborate?你想讓幾個開發人員部署到相同的Tomcat實例?如果是這樣,我會考慮http://tomcat.apache.org/tomcat-6.0-doc/config/context.html – alex 2008-11-07 21:46:06

回答

5

我通常在默認屬性使用變化答案已經給出:

<property file="local.properties" /> 
<property file="default.properties" /> 

我讀的局部性質第一個文件,默認一秒。用戶不編輯默認值(然後意外檢查),他們只是在local.properties中定義他們想要覆蓋的屬性。

+0

+1:我使用一個非常類似的結構,但通常添加「$ {user.home}/.ant/$ {ant.project} -local.properties「,以便我(或其他開發人員)可以跟蹤多組這些定製,而無需去查找它們。 – 2008-11-17 03:27:12

2

您可以從命令行覆蓋ant屬性。

ant -Dinstall.location=/bob1 install 

查看Running Ant瞭解更多信息。

0

在命令行中使用-D選項定義屬性是很好的,但如果它們中有很多是頻繁的,那麼它可能會很乏味。爲了抵制在bash腳本中包裝ant調用的衝動,通常會導入屬性文件。

在主構建文件你就把:

<property file="default.properties" /> 

然後,你必須有一個樣本配置default.properties.sample命名的文件。這正在檢查到版本控制。開發人員檢查default.properties.sample,將其複製到default.properties並根據其需要進行編輯。

您應該爲default.samples設置一個忽略默認標誌,以防止它被意外檢查(svn:ignore with subversion)。

1

這個答案很晚,但我只是想把它放在一個可能需要它的人身上。答案與你問題的第二部分有關。 「可以」ant安裝「帶參數或被配置爲考慮安裝目標的環境變量?」

  1. 定義環境virable請在生成文件:

    <property environment="env" /> 
    
  2. 參考的環境變量,並用它來表示的路徑。這是在我的構建文件中的我的類路徑定義中完成的。它說,從weblogic lib目錄中包含一個名爲api.jar的jar。只要有爲其定義的相關環境可取,您就可以訪問任何其他路徑。例如,如果您爲它們發送了環境變量,則可以訪問程序文件,文檔,Java Home等。這裏WebLogic安裝目錄中定義的環境變量是BEA_HOME

    <fileset dir="${env.BEA_HOME}/wlserver_10.0/server/lib"> 
        <include name="api.jar" /> 
    </fileset>