programing

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

nasanasas 2020. 11. 6. 08:21
반응형

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


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

내 프로젝트 구조 :

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

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

예상되는 jar 구조 :

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

config / *. xml --- Spring 구성 파일


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


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

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

감사합니다. 기존 프로젝트를 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 파일의 패키지 경로와 일치해야합니다. 여기 내 대답을 참조 하십시오 .

참고 URL : https://stackoverflow.com/questions/24724383/add-resources-config-files-to-your-jar-using-gradle

반응형