java - gradle:使用不同的 jar 配置运行两次 InstallDist 任务
问题描述
出于打包原因,我需要在构建过程中运行两次installDist
任务,以生成两个发行版。在它们中的每一个中,主 jar 将包含不同的资源文件夹。
例子
假设我要生成:
- 首先是主 jar 排除文件
f1
和f2
- 然后是主 jar
f1
仅排除文件的发行版
我尝试了以下但没有成功:
tasks = ['installDist', ...., 'osXjar', 'installDist', ... ]
jar {
archiveName = xxx
exclude "f1"
exclude "f2"
}
task osXjar(type: Jar) {
archiveName = xxx
exclude "f1"
}
它产生两次相同的结果,我认为installDist
只依赖于 jar 并忽略 osXjar
此外,如果尝试仅运行自定义 jar 任务osXjar
,生成的 jar 会损坏并且尺寸非常小,而 jar 任务会产生正确的结果。
预先感谢您的帮助 !
解决方案
所以我在这里发布答案,以防有人遇到同样的问题。诀窍是包含from sourceSets.main.output
在自定义 jar 任务中。因此,以下将起作用:
tasks = ['installDist', ...., 'osXjar', 'installDist', ... ]
jar {
archiveName = xxx
exclude "f1"
exclude "f2"
}
task osXjar(type: Jar) {
archiveName = xxx
from sourceSets.main.output
exclude "f1"
}
推荐阅读
- java - Java:匿名集
在函数调用中 - android - 如何在 Sqlite 中链接两个表?
- amazon-web-services - AWS Elasticsearch 更新版本 6.3 -> 7.1
- html - 徽标图像未出现在浏览器选项卡的标题栏中
- sql - 如何在 Laravel Query Builder 中实现 union all 和 Group by?
- amp-html - amp-form 表单提交失败:错误:HTTP 错误 406
- javascript - 我怎样才能在这种链接上添加一个请稍候的电话
- openshift - Openshift OKD 过多的日志记录
- c++ - 为什么向量化使用浮点数比使用双精度数更有效?
- ocaml - Opam 可以安装最新的软件包并告诉'Already up-to-date'?