2015-03-03 33 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

相关问题