2013-09-03 5 views
6

Ich versuche, ein Gradle-JAR-Projekt zu erstellen, das ein Teilprojekt eines anderen ist und möchte, dass die Ausgabe-JAR-Datei in einem übergeordneten Verzeichnis gespeichert wird (genauer gesagt im Verzeichnis "lib" des übergeordneten oder untergeordneten Elements). Wie konfiguriere ich Gradle dafür und wo wird dies dokumentiert?Gradle: Wie konfiguriere ich den JAR-Speicherort im übergeordneten Verzeichnis des Projekts?

+0

Warum möchten Sie das tun? Jedes Projekt hat sein eigenes Build-Ausgabeverzeichnis und ich empfehle nicht, davon abzuweichen. Es ist verwirrend und bedeutet, dass Sie Projekte nicht mehr eigenständig säubern können. –

+0

Hallo Peter - Ich verstehe das Prinzip der Trennung von Subprojekt-Builds, aber in diesem Fall erstelle ich ein Grails-Plugin, das auf einem jar basiert, das in einem Unterprojekt (das groovige Quellen enthält), das mit Gradle erstellt wird. Ich möchte, dass jar im "lib" -Dir des Plugins ausgegeben wird. Das Plugin selbst hat kein Build (da es ein Grails Plugin ist), nur das Unterprojekt. –

+0

Hoffentlich Gradle ist flexibel genug, um zu tun, was ich tun möchte, ohne strenge Regeln über die Projektstruktur, wie Maven;) –

Antwort

11

In build.gradle hinzu:

libsDirName = '../../lib' 

Die Konfigurationseinstellungen werden in der offiziellen Gradle docs für die java plugin gezeigt.

BTW, stimme ich völlig mit der Absicht hinter den Kommentaren und Antworten von Peter und Häry, aber manchmal ist die einfachste Lösung die beste.

5

Einverstanden mit dem Kommentar Peter getippt. Ich denke jedoch, Sie möchten zum Ausdruck bringen, dass das Elternprojekt von der Ausgabe des Submoduls abhängt. Dies auszudrücken und sicherzustellen, dass der Elternteil die Ausgabe des Untermoduls in sein "lib" -Verzeichnis kopiert, ist sinnvoller.

task assembleSubModules(type: Copy) { 
    destinationDir = file("lib") 

    into("lib") { 
    project.subprojects.each { p -> 
     from(p.tasks.withType(Jar)*.outputs) 
    } 
    } 
} 
Verwandte Themen