2015-03-03 58 views
0

我有以下問題創建.jar文件使用螞蟻如何將應用程序屬性文件處理爲Ant構建腳本?

我有一個項目到IntelliJ(但情況將與任何IDE相同)。

該項目使用一些.properties文件被放置在項目本身。所以我有以下結構(僅與.properties文件有關)。

PROJECT-NAME 
    | 
    | 
    |-------> src 
    |   | 
    |   | 
    |   |-------> config (it is a package) 
    |   |   | 
    |   |   | 
    |   |   |-------> mailer.properties 
    |   | 
    |   | 
    |   |-------> log4j.properties 
    |  
    | 
    |-------> config.properties 

所以,你可以從previouse模式看,我有3種性質文件到該項目的3個不同的文件夾:

  1. config.properties:這是進入項目根文件夾。

  2. log4j.properties:這是進入該項目的/src目錄/文件夾

  3. mailer.properties:這是進入配置包項目/src目錄/文件夾內。

在這個階段,我已經創建了不創建配置包並沒有把我的所有屬性在正確的位置提交的build.xml Ant腳本。

所以我的疑問是:如何處理這種情況?

我想,我可以創建配置夾入編譯目標和複製的屬性在正確的位置文件之前創建一個使用jar目標最終jar文件。

這是一個很好的解決方案嗎?我該如何處理這種情況?

+0

你的實際問題是什麼?是如何添加屬性文件放到ant build xml中? – 2015-03-03 11:53:47

+0

@NomeshDeSilva是的,類似這樣的東西。如何正確地添加這些文件(因爲它們有特定的位置,我認爲當Ant腳本將這些文件放到.jar文件中時,這些文件必須是否在同一位置?或者不是? – AndreaNobili 2015-03-03 12:07:26

+0

您是否嘗試過在PropertyTask中使用ant?我認爲您需要將它放在同一個級別中,請查看https://ant.apache.org/manual/Tasks/propertyfile .html – 2015-03-03 12:14:09

回答

1

將您的屬性文件放在JAR中實際上是個好主意。但將它放入JAR中的缺點是編輯起來會更困難(您必須從JAR中提取它並將其放回)。

當您構建JAR文件時,只需將它與您的類文件一起包括在內。您可以使用類Class或ClassLoader中的方法getResourceAsStream()來讀取JAR文件中的屬性文件。舉個例子,你有你的屬性在JAR文件的根目錄文件,那麼你可以這樣閱讀你的程序中:

InputStream in = this.getClass().getResourceAsStream("config.properties"); 
 
Properties props = new Properties(); 
 
props.load(in); 
 
in.close();

注:關於「路徑」到你的屬性文件是相對於你的主類是什麼。所以,如果你的主要是在包「com。abc「,屬性文件是config.properties,創建罐子時將config.properties放置在」com「之外,路徑簡單地爲」/config.properties「

+0

好吧,我很抱歉,但我仍然有點混淆。這個代碼片段是指我在我的jar或外部有屬性文件的情況? – AndreaNobili 2015-03-03 13:03:20

+0

裏面的jar,根文件夾。 – 2015-03-03 14:32:28

相關問題