문제

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>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top