Apache Ant JAR 작업:속성을 찾지 못함
문제
Ant 매니페스트 내의 모든 속성 파일 위치를 정확히 어떻게 지정해야 합니까?
내 jar가 log4j, Spring 등의 속성을 찾을 수 없기 때문에 작동하지 않습니다.
이러한 파일은 모두 소스 코드와 동일한 수준에 있는 "server-config"라는 폴더 내에 포함되어 있습니다. 즉:
- 메타-INF
- com
- 서버 구성
본질적으로, 나는 server-config 폴더 내의 이러한 모든 속성 파일을 인식하기 위해 jar의 Class-Path 속성에 추가해야 하는 것이 무엇인지 알고 싶습니다.
내 현재 작업은 다음과 같습니다.
<jar destfile="${root.home}/onejar/build/main/main.jar" basedir="${build.home}">
<manifest>
<attribute name="Class-Path" value=".;server-config" />
</manifest>
<include name="com/mycompany/client/*"/>
<include name="com/mycompany/portable/util/*"/>
<include name="com/mycompany/request/*"/>
<include name="com/mycompany/model/*"/>
<include name="com/mycompany/controller/*"/>
<include name="com/mycompany/helpers/*"/>
<include name="server-config/*"/>
</jar>
몇 가지를 시도했지만 아무것도 작동하지 않습니다. 파일을 찾을 수 없기 때문에 계속 오류가 발생합니다.
어떤 도움이라도 대단히 감사하겠습니다!
해결책
전체를 제거할 수 있습니다. <manifest...
부분 - Class-Path 매니페스트 속성이 수행하는 작업이 아닙니다. JAR 외부에 대한 것입니다.
라인 <include name="server-config/*"/>
~해야 한다 작업 - ${build.home} 디렉토리 내에 server-config 디렉토리가 존재하는 경우.아마도 거기에 복사하는 작업이 필요할 것입니다. 소스 코드 같은 층에 앉아 있는데 어디에 있는지는 언급하지 않네요 로 컴파일됨.
예 -
<mkdir dir="${build.dir}/server-config"
<copy todir="${build.dir}/server-config">
<fileset dir="${src.dir}/server-config">
<include name="*"/>
</fileset>
</copy>
제휴하지 않습니다 StackOverflow