我使用Gradle Java插件,并具有以下源代码结构:
src/main/java/package1/
src/main/java/package2/
我想为每个包目录创建两个源jar,即
myproject-package1-sources-1.0.jar
myproject-package2-sources-1.0.jar
我可以使用以下方法为整个项目创建源jar:
task sourcesJar(type: Jar, dependsOn: classes) {
classifier = 'sources'
from sourceSets.main.allSource
}
artifacts {
archives sourcesJar
}
如何为两个具有适当名称的项目创建源jar?
编辑:可能是package1和package2更深一些
src/main/java/a/b/e/package1/
src/main/java/x/y/z/package2/
也可能有多个package1和2,例如:
src/main/java/a/b/e/package1/
src/main/java/qwer/package1/
src/main/java/x/y/z/package2/
我希望名为
packages1
的文件夹中的所有文件和后续文件都将其包含在第一个源jar中,而将其包含在其他软件包中。 最佳答案
这个问题与我刚才在这里回答的问题非常相似:https://stackoverflow.com/a/29946192/950427。
由于您在“相同”模块中有“两个”项目,或者根本没有模块,因此需要手动“指定”所需的目录。
您将需要以下内容:
task project1(type: Copy) {
from('build/classes/main/package1/')
into('another directory/')
include('classes.jar')
}
task project2(type: Copy) {
from('build/classes/main/package2/')
into('another directory/')
include('classes.jar')
}