2017-12-15 5 views
1

TL; DR Erstellen Sie ein FatJar, kopieren Sie jedoch die Datei `application.properties`` aus einem Unterprojekt in den Build-Ausgabeordner (eines davon).Gradle: Kopieren Sie die Datei application.properties aus dem Unterprojekt

Hallo an alle,

Ich habe ein gradle Projekt bekam, die nicht Quellcode enthält in der übergeordneten Projekt, hat aber Teilprojekte, die zu tun. Eines dieser Unterprojekte hat eine application.properties Datei, die ich gerne in meinem Build-Ordner hätte. Die Struktur der App sieht so aus.

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 

Ich möchte es so, dass, wenn ich das ParentProject erstellen, das Build-Verzeichnis in etwa so aussehen wird.

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

Ab sofort mache ich meine Build-Skript-Ausgabe, was ich glaube, heißt ein FatJar. Ich bin mir nicht sicher, ob dies Probleme verursacht.

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

Was habe ich versucht:

Alles. Ich habe die ganze benutzerdefinierten Aufgabenroute in der Datei ParentProject bauen versucht

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

task copyStuff and then copyStuff.dependsOn... 

task copyStuff..{ 
    doLast { 

Egal was passiert, ich habe es nie zu kopieren bekommen, und es ist die ganze Nacht ein Wasserfall des Scheiterns gewesen.

Jede Hilfe wird sehr geschätzt.

Antwort

0

Verwenden Sie einfach Copy Aufgabe von Gradle, das ist abhängig von Jar Aufgabe

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