Gradle 如何隐藏多项目渐变应用程序
我有一个build.gradle文件,用于替换由2个模块和第三个子模块组成的旧maven pom.xml。我这样把它移到了格拉德尔:Gradle 如何隐藏多项目渐变应用程序,gradle,shadow,multi-project,Gradle,Shadow,Multi Project,我有一个build.gradle文件,用于替换由2个模块和第三个子模块组成的旧maven pom.xml。我这样把它移到了格拉德尔: apply plugin: 'java' apply plugin: 'eclipse' apply plugin: 'groovy' buildscript { repositories { mavenCentral() } dependencies { classpath 'org.gradle.plu
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'groovy'
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'org.gradle.plugins:shadow:0.7.4'
}
}
apply plugin: 'shadow'
sourceCompatibility = 1.7
version = '0.1'
jar {
manifest {
attributes 'Implementation-Title': 'mainprj', 'Implementation-Version': version
}
}
subprojects {
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'groovy'
repositories {
mavenCentral()
maven { url 'http://nexus.codehaus.org/snapshots' }
}
dependencies {
//some deps here
}
}
project(':mainprj') {
dependencies {
compile project(':subprj1')
compile project(':subprj2')
}
}
project(':subprj1') {
dependencies {
compile project(':subprj3')
//deps here
}
}
project(':subprj2') {
dependencies {
compile project(':subprj3')
//deps here
}
}
project(':subprj3') {
dependencies {
//deps here
}
}
shadow {
exclude 'META-INF/*.SF'
exclude 'META-INF/*.DSA'
exclude 'META-INF/*.RSA'
transformer(org.gradle.api.plugins.shadow.transformers.AppendingTransformer) { resource = 'META-INF/stuff' }
}
我想知道当我从命令行运行“gradleshadow”时,如何获得一个“shadowd”包,就像我运行“gradleshadow”时得到一个空罐子一样。有什么想法吗?看起来您想创建一个影子Jar,它包含由
:mainprj
创建的Jar及其依赖项。在这种情况下,您可能必须将插件应用于:mainprj
,而不是根项目。另外,除非您在根项目中有代码,否则java
和groovy
插件不应该应用在那里(但是eclipse
应该应用)。您到底有什么问题?如果我运行“gradle shadow”,我会得到一个空jar谢谢,我将“shadow”任务移到了项目mainprj下,它就可以工作了。无论如何,我仍然需要在根上使用java和groovy