我有一个库,用于使用Gradle构建许多CLI工具。每个CLI工具都是一个单独的JAR。目前,每个工具都需要一个单独的Gradle项目,以及一组相关的目录,如下所示:
拥有所有这些结构导致整个工具集变得非常笨拙并且难以使用。有没有办法将所有不同的Main
收集到一个文件夹中(适当地重命名)并配置Gradle将每个文件夹转换为单独的JAR?
FWIW,JAR目前使用https://github.com/johnrengelman/shadow创建。 JAR大小并不重要。
提前致谢。
答案 0 :(得分:1)
Jars只是包含META-INF
文件夹的zip文件。使用Zip
个任务创建它们,并dependsOn
将任务作为构建序列的一部分运行。
我有以下代码来更改jar文件:
task changeJar (type: Zip) {
baseName project.name
extension 'jar'
destinationDir new File('build')
entryCompression ZipEntryCompression.STORED
from { zipTree(new File(core.libsDir, core.name + '.jar')) }
from ( <somewhere else> ) {
exclude 'META-INF/'
}
}
答案 1 :(得分:1)
我不确定它是否合适,但您可能对我的gradle-java-flavours插件感兴趣。
例如:
if (e.Url.AbsolutePath == (sender as WebBrowser).Url.AbsolutePath)
目录
罐