我正在尝试使用以下模式创建一组四个罐子(每个罐子都有自己的项目。helpRootDir
在所有四个罐子之间共享。如果有人知道一种方法可以完成一个任务这四个,那真是棒极了)
def helpRootDir = 'runtime/datafiles/help/'
project(':schedwinclihelp') {
def helpDir = 'schedwincli'
//Include no classes. This is strictly a resource jar
sourceSets.main.java {
exclude 'com/**'
}
jar {
from '${helpRootDir}/${helpDir}'
include '**/*.*'
}
}
无论如何,正如你从上面所看到的,我想要jar中没有类,这是有效的。不幸的是,我实际上在jar中获取的是一个MANIFEST.MF文件。 jar定义中的所有文件都没有添加。我想将${helpRootDir}/${helpDir}
中的完整文件树添加到jar的根目录中。我该如何做到这一点?
答案 0 :(得分:1)
想通了我错误地引用了我的变量。
正确的语法是:
def helpRootDir = 'runtime/datafiles/help/'
project(':schedwinclihelp') {
def helpDir = 'schedwincli'
//Include no classes. This is strictly a resource jar
sourceSets.main {
java {
exclude 'com/**'
}
resources {
srcDir helpRootDir + '/' + helpDir
}
}
}
注意srcDir helpRootDir + '/' + helpDir
而不是'${helpRootDir}/${helpDir}'
。另外,我刚刚帮助dir一个资源目录,让java插件自动完成它。
答案 1 :(得分:1)
以下任务将创建一个名为 resources.jar
的 JAR 文件,其中仅包含主要资源文件(这些文件位于 src/main/resoures
目录下)。
科特林 DSL:
tasks {
task<Jar>("resourcesJar") {
from(sourceSets["main"].resources)
archiveFileName.set("resources.jar")
}
}
Groovy DSL:
tasks.create("resourcesJar", Jar.class) {
from sourceSets.main.resources
archiveFileName = "resources.jar"
}