[gradle] Gradle을 사용하여 jar에 리소스, 구성 파일 추가

Gradle을 사용하여 구성 파일 또는 기타 리소스를 내 jar에 어떻게 추가합니까?

내 프로젝트 구조 :

src / main / java / com / perseus / .. — Java 패키지 (소스 파일)

src / main / java / config / *. xml — Spring 구성 파일

예상되는 jar 구조 :

com / perseus / .. — Java 패키지 (클래스 파일)

config / *. xml — Spring 구성 파일



답변

리소스에 대한 추가 디렉토리를 추가하는 방법을 검색하는이 게시물을 보았습니다. 누군가에게 유용 할 수있는 해결책을 찾았습니다. 이를 얻기위한 최종 구성은 다음과 같습니다.

sourceSets {
    main {
        resources {
            srcDirs "src/main/resources", "src/main/configs"
        }
    }
}


답변

구성 파일을 src/main/java에서 src/main/resources.


답변

감사합니다. 기존 프로젝트를 Gradle로 마이그레이션하고 있었는데 프로젝트 구조를 변경하는 것이 마음에 들지 않았습니다.

이 정보가 초보자에게 유용 할 것이라고 생각했습니다.

다음은 내 ‘build.gradle’의 샘플 작업입니다.

version = '1.0.0'

jar {
   baseName = 'analytics'
   from('src/main/java') {
      include 'config/**/*.xml'
   }

   manifest {
       attributes 'Implementation-Title': 'Analytics Library', 'Implementation-Version': version
   }
}


답변

기본적으로 추가하는 모든 파일 src/main/resources은 jar에 포함됩니다.

어떤 이유로 든 해당 동작을 변경해야하는 경우를 구성하여 변경할 수 있습니다 sourceSets.

설명서 의이 부분에는 모든 세부 정보가 있습니다.


답변

나는 같은 문제에 부딪쳤다. Java 패키지에 PNG 파일이 있는데 소스와 함께 최종 JAR로 내 보내지 않아 시작시 앱이 충돌했습니다 (파일을 찾을 수 없음).

위의 답변 중 어느 것도 내 문제를 해결하지 못했지만 Gradle 포럼에서 해결책을 찾았습니다. 내 build.gradle파일에 다음을 추가했습니다 .

sourceSets.main.resources.srcDirs = [ "src/" ]
sourceSets.main.resources.includes = [ "**/*.png" ]

Gradle에 src폴더 에서 리소스를 찾고 PNG 파일 만 포함하도록 요청합니다.

편집 : Eclipse를 사용하는 경우 실행 구성이 손상되고 main class not found프로그램을 실행하려고 할 때 오류가 발생합니다. 이 문제를 해결하려면, 내가 찾은 유일한 해결책은 다른 디렉토리에 이미지 (들)을 이동하는 것입니다 res/예를 들어, 등을 설정하는 srcDirs대신 src/.


답변

src / main / resources 아래의 경로는 리소스에 액세스하려는 .class 파일의 패키지 경로와 일치해야합니다. 여기에서 내 대답을 참조 하십시오 .


답변