2017-12-15 34 views
1

TL; DR FatJar를 작성하지만 서브 프로젝트의`application.properties` 파일을 빌드 출력 폴더 (그 중 하나)에 복사하십시오.Gradle : 서브 프로젝트에서 application.properties 파일 복사

안녕하세요 모두,

나는 부모 프로젝트의 소스 코드를 포함하지 않는 Gradle을 프로젝트를 얻었으나, 할 하위 프로젝트를 가지고했습니다. 이 하위 프로젝트 중 하나는 application.properties 파일을 가지고 있으며이 파일은 내 빌드 폴더에 나타납니다. 앱의 구조는 다음과 같습니다.

ParentProject 
| 
|-datamodel(Sub Project) 
| | 
| |-build.gradle 
|-datadb(Sub Project) 
| | 
| |-build.gradle 
|-dataservices(Sub Project) 
| | 
| |-src 
| | | 
| | |-main 
| |  | 
| |  |-resources 
|    | 
|    |-application.properties(File I need) 
| |-build.gradle  
| 
|-build.gradle 
나는 ParentProject를 빌드 할 때, 빌드 디렉토리는 다음과 같이 보일 수 있도록 내가하고 싶은

.

build 
    | 
    |-libs 
    | | 
    | |-outputted.jar 
    | 
    |-resources 
     | 
     |-application.properties 

현재로서는 빌드 스크립트에서 FatJar라고하는 것을 출력하고 있습니다. 이 문제가 발생하는지 잘 모르겠습니다.

jar { 
    ... 
    from { 
     (configurations.runtime).collect { 
     it.isDirectory() ? it : zipTree(it) 
     } 
    } 
    ... 
} 

가 나는 시도했다 :

다. 나는 복사를받은 적이 무엇을, 아무리 ParentProject 빌드 파일

task copyStuff (dependsOn : 'subproject:build'){... 

task copyStuff and then copyStuff.dependsOn... 

task copyStuff..{ 
    doLast { 

에서 전체 사용자 지정 작업 경로를 시도하지했습니다, 그리고 그것은 실패의 폭포 전체 밤이었다.

도움을 주시면 대단히 감사하겠습니다.

답변

0

그냥 Gradle에서 Copy 작업을 사용하여, 그게 전부는 Jar 작업에 따라 달라집니다

task customBuild(type: Copy, dependsOn: [jar]) { 
    from "dataservices/src/main/resources/" 
    into "build/resources" 
    include "application.properties" 
}