我正在查看java-library-distribution插件,它几乎可以完成我想要的一切,但是,我有一些问题。
我想控制输出zip文件的名称,使其成为 group-module-version-bin.zip而不是group-module-version.zip,I 可以控制第一位,但我似乎无法添加 bin到生成的名称。
而不是将项目jar拉到生成的zip的顶层我 希望将它与依赖项
我想提取一些资源,但我的项目已经存在。一世 想要尝试避免重构文件位置。如果我 把文件放在src / main / dist中,它们就是我想要的, 但如果我在发行版中指定内容 - >主要是他们被放入了顶级 拉链。我尝试使用内容 - >从这似乎 导致所有内容进入包含libs和jar的子目录。
我想我可以编写自己的zip任务,但如果能让它工作,我会更早地使用现有的插件。
感谢您的帮助。
答案 0 :(得分:1)
我已设法使用以下代码解决第二和第三部分。基本上我查看了java-library-distributions代码,并使用分发插件进行了讽刺。
distributions {
main {
contents {
into('resources/config') {
from { 'bin/config' }
}
into('resources/img') {
from { 'bin/img' }
}
into('lib') {
from(jar)
}
from { 'bin/xxx.bat' }
}
}
}
但是关于输出文件名的问题仍然存在。
答案 1 :(得分:0)
使用baseName属性,您可以控制输出文件的名称:
distributions {
main {
contents {
baseName = "Test-${project.getProperty('group')}-${project.getProperty('version')}-bin"
但是,版本总是附加在最后,这给出了以下结果: 建立/分布/试验组-4.4.0-SNAPSHOT彬4.4.0-SNAPSHOT.tar
如果您可以将“bin”部分移动到名称中的其他位置,则可以使用此功能。
答案 2 :(得分:0)
' -bin'名称末尾的部分称为"分类器" (这是一个Maven术语)。您可以在build.gradle的artifacts部分中设置它:
artifacts {
yourConfigurationName distZip {
classifier = 'bin'
}
}
代码'工件'和' distZip'完全如图所示。 更改“您的配置名称”'以及将此包放入的任何配置的名称(由build.gradle的'配置{yourConfigurationName}部分定义),将其上载到存储库时。
这将产生一个group-module-1.2.3-SNAPSHOT-bin.zip
这对我来说已经工作了几个小时。我发布到Artifactory,但我认为它应该适用于任何类型的上传。