2012-04-16 112 views
0

我只是試圖組織我的Java lib文件夾(使用NetBeans)。NetBeans - 使用不同的lib文件夾

我想有什麼是這樣的:

unknownNetworkDriveOrUncPath:\java\commonlib\ 
            |-- fileio.jar 
            |-- ... 

unknownNetworkDriveOrUncPath:\java\program1\ 
            |-- lib\ 
            |-- program1.jar 

unknownNetworkDriveOrUncPath:\java\program2\ 
            |-- lib\ 
            |-- program2.jar 

程序文件夾內的文件夾的lib包含特定罐子。 commonlib文件夾包含每個程序可能使用的jar。 因此,program1應該有權訪問它自己的lib文件夾和公共lib文件夾。程序2也是如此。

最好的辦法是編譯後在dist文件夾中有相同的結構。然後就可以將文件複製到所需的位置。但我不知道該怎麼做。

是否有關於如何配置NetBeans的「最佳實踐」解決方案?由於網絡驅動器可能不同,我無法使用絕對路徑或UNC路徑。

在此先感謝。

問候。

+0

所以你的問題是關於如何將不同的庫包含到Netbeans中(然後將它們放在dist文件夾中);還是關於如何讓Netbeans猜測Network Drive目前存在的內容? – 2012-04-19 07:38:56

回答

2

您可能需要的是修改項目目錄中的build.xml文件。 Netbeans使用Apache Ant作爲執行構建過程的工具。 Ant是一個基於XML的腳本。它在Netbeans中被分割成多個文件,但唯一需要修改的是build.xml。

閱讀文件中的註釋。他們建議您應該重寫某些目標以調整構建過程以適應您的需求。例如,我們使用「-post-jar」目標在「dist」目錄內創建我們產品的整個安裝目錄。至於非絕對路徑,我認爲你不能實現這一點,但你可以將東西複製到相對於你的項目目錄的位置。我完全可以爲多個Netbeans項目建立一個共同的dist目錄。

以下內容可能(未經測試)將您項目的JAR複製到「commonBuildDir」目錄,該目錄應與您的項目目錄位於同一級別。

<target name="-post-jar"> 
    <property name="common.build.dir" location="${build.dir}/../../commonBuildDir"/>  
    <copy todir="${common.build.dir}" preservelastmodified="true"> 
      <fileset file="${dist.jar}"/> 
    </copy> 
</target> 

${build.dir}引用了一個Ant屬性,在這種情況下,預定一個指向該項目的build目錄。 ${dist.jar}同樣適用於引用項目JAR文件的位置。如果我沒有記錯的話,這些都是絕對路徑。

Customizing Netbeans Build Script

Ant Tutorial

我想這應該讓你開始自定義您的構建過程中,您希望的方式。

+0

對不起,這麼晚了。有很多其他的事情要做...如果我理解正確,那麼我將不得不手動選擇每個單獨的jar(lib),以便位於公共lib文件夾或程序特定的lib文件夾中。這不是太複雜嗎? – Sleepwalker 2012-04-30 05:28:07

+0

@Sleepwalker不是您的要求嗎?或者你問Netbeans是否能夠將JAR自行排序到合適的位置?恐怕不會那樣對你。 – predi 2012-04-30 08:12:04

+0

真是遺憾:(你的想法很好,但是我希望能夠在NetBeans中以某種方式配置這個結構,而不需要手動爲每個數十個庫創建這個結構,如果我找到時間的話,我可以嘗試一下。 ,這似乎是唯一可以接受的答案:) – Sleepwalker 2012-04-30 14:43:49

0

您可以創建一個commonslib庫(Tools -> Libraries),然後在項目中使用它。

然後在您的項目中手動添加路徑到罐子。

相關問題