2016-06-10 6 views
0

Wer erleichtert, dass jede Datei von resources Unterverzeichnis aus Quellgruppe in Ressourcen-Ordner des Build-Verzeichnis kopiert wird?Wie kontrolliert man Ressourcenverarbeitung während Java Build?

Ich habe einfach Gradle Projekt innerhalb IntelliJ erstellt und haben zusätzliche Quelle Wurzel demo genannt konfiguriert:

enter image description here

build.gradle ist folgende:

group 'net.inthemoon.tests' 
version '1.0-SNAPSHOT' 

apply plugin: 'java' 

sourceCompatibility = 1.5 

repositories { 
    mavenCentral() 
} 

dependencies { 
    testCompile group: 'junit', name: 'junit', version: '4.11' 
} 

sourceSets { 
    demo 
} 

Dann habe ich einfache Textdateien in rerources Verzeichnisse platziert von beiden Sets.

Danach bemerkte ich, dass die markierte Datei (eine von demo Quellsatz) erscheint nur, wenn ich Build von IntelliJ laufen. Wenn ich build Ziel von Gradle ausführen, wird nur zweite Datei (von main Quellgruppe) angezeigt.

Wie konfiguriert man Gradle, um alle Dateien aus allen Quellgruppen zu verarbeiten?

Antwort

1

Ich benutze nicht intellij, also kann ich Ihnen nicht sagen, warum es automatisch demoClasses ausführt, um das Demo sourceSet zu kompilieren und zu kopieren, aber Sie können es ausführen und sehen die Ressourcen wie intellij es tun würde.

nur

build.dependsOn demoClasses 

hinzufügen und es wird es auf jedem Build tun. Um sie zu Ihrem Glas fügen Sie es als Quelle hinzuzufügen haben wie

jar { 
    from sourceSets.demo.output 
} 

Für eine sourceSet, die gerade auf der Haupt hängt addieren es Ausgabe

sourceSets { 
    demo { 
     compileClasspath += sourceSets.main.output 
     runtimeClasspath += sourceSets.main.output 
    } 
} 

Und wenn Sie auch benötigen ist es kompilieren/runtime Libs für die Demo kompilieren nur tun

+0

Nachdem ich diese Zeilen hinzugefügt habe, habe ich zahlreiche Fehler über das nicht finden von Symbolen und Paketen, als ob Demo-Source-Set nicht über Klassen aus der Hauptquelle bekannt ist. – Dims

+0

Ja, das stimmt. Ich habe die Konfigurationen für Ihre Bedürfnisse hinzugefügt, aber es gibt bereits einige Beispiele zu diesem Thema, wie Sie sie hinzufügen können, siehe http://stackoverflow.com/questions/11581419/how-do-i-add-a-new-sourceset-to-gradle – Hillkorn