Java 如何使用单个build.gradle创建两个单独的jar文件
我试图用一个build.gradle创建两个单独的jar文件 它几乎可以工作,但一个会覆盖另一个。正确的做法是什么Java 如何使用单个build.gradle创建两个单独的jar文件,java,gradle,Java,Gradle,我试图用一个build.gradle创建两个单独的jar文件 它几乎可以工作,但一个会覆盖另一个。正确的做法是什么 jar { //include contents of output dir from "$buildDir/classes/main" exclude '**/a1/**' archiveName "X1-1.0.0.jar" } jar { //include contents of output dir
jar {
//include contents of output dir
from "$buildDir/classes/main"
exclude '**/a1/**'
archiveName "X1-1.0.0.jar"
}
jar {
//include contents of output dir
from "$buildDir/classes/main"
exclude '**/a2/**'
archiveName "X2-1.0.0.jar"
}
谢谢您需要使用两个Jar任务,而不是两次配置同一个Jar任务。假设您使用的是
java
插件,您可以重用该插件添加的名为Jar
的Jar任务,并自己添加另一个:
// reconfigure the Java plugin's `jar` task
jar {
exclude '**/a1/**'
baseName = 'X1'
}
// need to configure this one from scratch
task x2jar(type: Jar) {
// referring to the output in this way
// allows Gradle to infer task dependencies automatically
from sourceSets.main.output
exclude '**/a2/**'
baseName = 'X2'
}
// one way to make `gradle build` run both Jar tasks
assemble.dependsOn(x2jar)
有关配置选项的详细信息,请参阅。与两次配置同一个Jar任务不同,您需要使用两个Jar任务。假设您使用的是
java
插件,您可以重用该插件添加的名为Jar
的Jar任务,并自己添加另一个:
// reconfigure the Java plugin's `jar` task
jar {
exclude '**/a1/**'
baseName = 'X1'
}
// need to configure this one from scratch
task x2jar(type: Jar) {
// referring to the output in this way
// allows Gradle to infer task dependencies automatically
from sourceSets.main.output
exclude '**/a2/**'
baseName = 'X2'
}
// one way to make `gradle build` run both Jar tasks
assemble.dependsOn(x2jar)
有关配置选项的详细信息,请参阅。与两次配置同一个Jar任务不同,您需要使用两个Jar任务。假设您使用的是
java
插件,您可以重用该插件添加的名为Jar
的Jar任务,并自己添加另一个:
// reconfigure the Java plugin's `jar` task
jar {
exclude '**/a1/**'
baseName = 'X1'
}
// need to configure this one from scratch
task x2jar(type: Jar) {
// referring to the output in this way
// allows Gradle to infer task dependencies automatically
from sourceSets.main.output
exclude '**/a2/**'
baseName = 'X2'
}
// one way to make `gradle build` run both Jar tasks
assemble.dependsOn(x2jar)
有关配置选项的详细信息,请参阅。与两次配置同一个Jar任务不同,您需要使用两个Jar任务。假设您使用的是
java
插件,您可以重用该插件添加的名为Jar
的Jar任务,并自己添加另一个:
// reconfigure the Java plugin's `jar` task
jar {
exclude '**/a1/**'
baseName = 'X1'
}
// need to configure this one from scratch
task x2jar(type: Jar) {
// referring to the output in this way
// allows Gradle to infer task dependencies automatically
from sourceSets.main.output
exclude '**/a2/**'
baseName = 'X2'
}
// one way to make `gradle build` run both Jar tasks
assemble.dependsOn(x2jar)
有关配置选项的详细信息,请参阅。我尝试过。它没有创建X2.jar。我将行baseName='X2'更改为archiveName'X2.jar'。它也不起作用=(将assemble.dependsOn(x2jar)更改为jar.dependsOn(x2jar)。现在它工作了。谢谢!要么您没有运行
gradle build
,要么您有一个非标准的构建。jar.dependsOn(x2jar)
有点像黑客,因为这两个任务实际上并不相互依赖。实际运行gradle build没有帮助。它只生成了一个空jar,0-Thu-Dec 05 07:07:34 MST 2013 META-INF/25-Thu-Dec 05 07:07:34 MST 2013 META-INF/MANIFEST.MF。我使用的gradle直接从www.gradle.org下载将assemble.dependsOn(x2jar)更改为jar.dependsOn(x2jar)。它与gradle build配合得很好。它生成了与我想要的内容完全相同的jar。我尝试了。它没有创建X2.jar。我将行baseName='X2'更改为archiveName'X2.jar'。=(将assemble.dependsOn(x2jar)更改为jar.dependsOn(x2jar)。现在它成功了。谢谢!要么你没有运行gradle build
,要么你有一个非标准的build。jar.dependsOn(x2jar)
有点像黑客,因为这两个任务实际上并不相互依赖。实际运行gradle build没有帮助。它只生成了一个空jar,0-Thu-Dec 05 07:07:34 MST 2013 META-INF/25-Thu-Dec 05 07:07:34 MST 2013 META-INF/MANIFEST.MF。我使用的gradle直接从www.gradle.org下载将assemble.dependsOn(x2jar)更改为jar.dependsOn(x2jar)。它与gradle build配合得很好。它生成了与我想要的内容完全相同的jar。我尝试了。它没有创建X2.jar。我将行baseName='X2'更改为archiveName'X2.jar'。=(将assemble.dependsOn(x2jar)更改为jar.dependsOn(x2jar)。现在它成功了。谢谢!要么你没有运行gradle build
,要么你有一个非标准的build。jar.dependsOn(x2jar)
有点像黑客,因为这两个任务实际上并不相互依赖。实际运行gradle build没有帮助。它只生成了一个空jar,0-Thu-Dec 05 07:07:34 MST 2013 META-INF/25-Thu-Dec 05 07:07:34 MST 2013 META-INF/MANIFEST.MF。我使用的gradle直接从www.gradle.org下载将assemble.dependsOn(x2jar)更改为jar.dependsOn(x2jar)。它与gradle build配合得很好。它生成了与我想要的内容完全相同的jar。我尝试了。它没有创建X2.jar。我将行baseName='X2'更改为archiveName'X2.jar'。=(将assemble.dependsOn(x2jar)更改为jar.dependsOn(x2jar)。现在它成功了。谢谢!要么你没有运行gradle build
,要么你有一个非标准的build。jar.dependsOn(x2jar)
有点像黑客,因为这两个任务实际上并不相互依赖。实际运行gradle build没有帮助。它只生成了一个空jar,0-Thu-Dec 05 07:07:34 MST 2013 META-INF/25-Thu-Dec 05 07:07:34 MST 2013 META-INF/MANIFEST.MF。我使用的gradle直接从www.gradle.org下载将assemble.dependsOn(x2jar)更改为jar.dependsOn(x2jar)。它与gradle build配合得很好。它生成了与我想要的内容完全相同的jar。