【发布时间】:2014-07-22 23:14:41
【问题描述】:
我的 build.gradle 目前是:
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' }
}
}
但不是直接将这些编译的类打包到一个 jar 中,我想首先通过运行以下任务来检测它们:
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()
}
只有在我检测了这些类之后,我才会想要将它们打包到一个 JAR 文件中。有没有办法让我可以在包装之前做这个检测?
非常感谢!!!
【问题讨论】:
-
这里是一个 Gradle 项目示例:github.com/javalite/activejdbc-gradle。如果你执行:
gradle clean build jar,它将生成一个带有检测类的 jar 文件 -
使用配置 { jar } 然后 jar.doFirst { dependsOn instrument }
标签: java jar gradle build.gradle activejdbc