Gradle: so fügen Sie eine benutzerdefinierte Aufgabe nach Erstellung, aber vor der Verpackung-Dateien in einem Jar?
Meine bauen.gradle ist derzeit:
project(':rss-middletier') {
apply plugin: 'java'
dependencies {
compile project(':rss-core')
compile 'asm:asm-all:3.2'
compile 'com.sun.jersey:jersey-server:1.9.1'
compile group: 'org.javalite', name: 'activejdbc', version: '1.4.9'
}
jar {
from(configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }) {
exclude "META-INF/*.SF"
exclude "META-INF/*.DSA"
exclude "META-INF/*.RSA"
}
manifest { attributes 'Main-Class':
'com.netflix.recipes.rss.server.MiddleTierServer' }
}
}
Sondern eher als eine Verpackung, diese kompilierten Klassen in eine jar direkt, ich möchte instrument Sie zuerst durch ausführen der folgenden Aufgabe:
task instrument(dependsOn: 'build', type: JavaExec) {
main = 'org.javalite.instrumentation.Main'
classpath = buildscript.configurations.classpath
classpath += project(':rss-middletier').sourceSets.main.runtimeClasspath
jvmArgs '-DoutputDirectory=' + project(':rss-middletier').sourceSets
.main.output.classesDir.getPath()
}
Nur, nachdem ich instrumentierten diese Klassen werde ich dann in einem Paket in einer JAR-Datei. Gibt es eine Möglichkeit, so dass ich tun kann dieser Besetzung vor der Verpackung?
Vielen Dank!!!
- hier ist ein Beispiel Gradle-Projekt: github.com/javalite/activejdbc-gradle. Wenn Sie ausführen:
gradle clean build jar
, wird es produzieren eine jar-Datei mit einer instrumentierten Klassen - Verwendung von Konfigurationen { jar } und dann jar.doFirst { dependsOn instrument }
- vielen Dank für die Hilfe Jungs!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Endlich kapiert, die Art und Weise, es zu tun!
Hoffe, dies kann verhindern, dass andere sein fest auf dieses problem seit Tagen 🙂