我有一个应用了应用程序插件的 Gradle 构建。应用程序插件还应用分发插件并创建默认的 main
分发,这会将启动脚本放置在 bin
文件夹中,并将依赖项放置在 lib
中。
现在我想完全删除该默认行为并拥有自己的发行版,但名称相同main
。更准确地说,我不需要 bin
和 lib
文件夹,而是想要我的自定义内容。
我知道我可以轻松定义一个新的发行版,例如
distributions {
my {
// my configuration here
}
}
这样我就可以通过 myDistZip
生成所需的分发。
但我想准确更改 main
发行版,以便我能够通过简单的 distZip
(或 distTar
)生成存档。
我尝试删除主发行版(通过 distributions.remove(distributions.main)
)并创建新发行版
distributions {
main {
// my configuration here
}
}
但是失败了
Cannot add task ':distZip' as a task with that name already exists.
我猜这只是因为 Gradle 为每个新发行版创建了 distZip
任务,因此它也尝试为新的 main
执行此操作,但是 distZip
任务已在插件应用期间创建。
那么有没有办法改变 main
发行版以摆脱 bin
和 lib
文件夹?
等级:3.5
最佳答案
But I want to change exactly main distribution so I will be able to produce archive via simple distZip (or distTar).
似乎您不必更改 main
发行版 - distribution
插件的文档(由 application
插件自动添加)注释对于每个发行版,您可以使用 gradle myDistZip
。
但是,您似乎也应该能够配置现有的 main
发行版:
distributions {
main {
contents {
// configure
}
}
}
虽然您似乎无法重置现有值,但也许您可以使用排除来不复制特定文件夹(请参阅 https://docs.gradle.org/current/javadoc/org/gradle/api/file/CopySpec.html )
关于java - Gradle - 更改主要发行版 - 删除 bin 和 lib 文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43734274/