2011-10-19 41 views
0

我有幾個Netbeans項目與它們之間的依賴關係。默認情況下,netbeans在生成時會在Project根文件夾下創建build和dist文件夾。我能夠使用相對路徑將其更改爲項目之外的通用文件夾。我所要做的只是在nbproject/project.properties文件中更改build.dir和dist.dir屬性。當我在IDE下構建時,項目文件中指定的公共文件夾下的所有內容都可以正常工作。有沒有辦法覆蓋Netbeans項目系統在命令行上使用的build和dist目錄?

我們有促進構建過程,期望在特定的構建文件夾下生成所有生成的類文件(jar文件等)。該文件夾根據用戶如何調用整個系統的配置腳本而改變。

可以說這個目錄在shell環境變量BUILD_ROOT中可用。 我想知道的是,如果有一種方法可以覆蓋build.dir和dist.dir,那麼當構建被調用時,project.properties在ant命令行上指定。這樣我就可以重用相同的構建系統,並在不改變project.properties文件的情況下生成我想要的二進制文件。

目前我們正在維護獨立的ant構建腳本,用於升級與IDE構建。

我很欣賞任何指針。

感謝
視頻傢伙

回答

0

我想出如何。 Ant允許您使用-Dpropname = value在命令行上定義屬性。一旦一個屬性被分配了一個值,Ant將忽略它在xml/.properties文件中遇到的那個變量的任何賦值。

1)首先,我編輯了nbproject/project.properties文件,併爲頂層構建目錄添加了一個變量。然後我改變了build.dir和dist.dir來使用這個變量。
buildroot.dir = ../.. /出
build.dir = $ {buildroot.dir}/myprojname

dist.dir = $ {buildroot.dir}/DIST
2)然後我確定它在Netbeans下工作。當您進入項目的Netbeans屬性面板時,它顯示目錄值正確。

3)在Makefile中添加一個目標來調用這個項目,如下所示。
螞蟻-f build.xml文件-Dbuildroot.dir = $(BUILD_ROOT)/ JAVA /出

這是能夠建立我的目標在Linux上構建主構建目錄服務器。基本上源文件夾是乾淨的,沒有任何構建相關的殘餘。

相關問題