2012-08-17 3 views
3

개미와 함께 "uberjar"를 만들려고하는데이 프로젝트에는 여러 속성 파일이있는 config 디렉토리가 있습니다.Ant build.xml에 특성 파일이 들어있는 디렉토리를 추가하는 방법은 무엇입니까?

build.xml에 config dir을 어떻게 추가합니까?

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

: http://stackoverflow.com/questions/3294196/load-resource-from -anywhere-in-classpath – oers

+1

가능한 경우 코드를 수정하지 않는 것을 선호합니다. 이것은 내가 평가하고있는 외부 프로젝트입니다. – espeed

+0

@espeed : jar 파일의 config 디렉토리에 등록 정보 파일을 추가하려고합니까? –

답변

4

새로운 jar 파일 내에서 속성을 파일을 포함하려면를 <jar> 작업에 다른 중첩 된 <fileset>을 추가 할 수 있습니다. 또한

<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> 

이 유래 질문을 참조하십시오 How to read a file from a jar file?

당신이 클래스 경로에서 능숙로 파일을로드 고려해야한다
+0

나는 그것을 시도했지만'new File (CONFIG_DIR, CONFIG_FILE); '파일을 찾지 못했습니다. – espeed

+0

@espeed : *** [jar 파일에서 파일을 읽는 방법?] (http://stackoverflow.com/q/2271926/1164465) *** –

+0

에 대한 링크를 참조하십시오. 프로젝트의 코드를 수정하지 않고이 작업을 수행하려고합니다. 이것은 외부 프로젝트입니다. – espeed

관련 문제