我正在尝试使用ant构建一个“uberjar”,并且该项目有一个包含多个属性文件的config目录。
如何将config dir添加到build.xml?
这是一个如何引用它的例子:
static private String CONFIG_DIR = "config/";
static public String CONFIG_FILE = "proj.properties";
File configFile = new File(CONFIG_DIR, CONFIG_FILE);
config目录中有多个属性文件。通常我会将它添加到类路径中:
java -classpath bin:lib/*:config some.project.Example
这是我的build.xml目标,这不太正确:
<target name="uberjar" depends="compile">
<jar jarfile="${babelnet.jar}">
<fileset dir="${bin.dir}">
<include name="**/*.class"/>
</fileset>
<zipgroupfileset dir="lib" includes="*.jar"/>
</jar>
<copy todir="config">
<fileset dir="config">
<include name="**/*.properties"/>
</fileset>
</copy>
</target>
答案 0 :(得分:5)
要在新jar文件中包含属性文件,可以在<fileset>
任务中添加另一个嵌套<jar>
。
<target name="uberjar" depends="compile">
<jar jarfile="${babelnet.jar}">
<fileset dir="${bin.dir}">
<include name="**/*.class"/>
</fileset>
<zipgroupfileset dir="lib" includes="*.jar"/>
<fileset dir="${basedir}">
<include name="config/*.properties"/>
</fileset>
</jar>
</target>
另请参阅stackoverflow问题: How to read a file from a jar file?