gpt4 book ai didi

gradle - 将不依赖的第二个jar文件包含到胖的onejar中

转载 作者:行者123 更新时间:2023-12-03 05:18:09 25 4
gpt4 key购买 nike

我有一个仅出于测试目的而构建胖的onejar文件的项目。因此,我不希望有一个单独的测试类作为对主要源的依赖,但是我确实希望将其包含在onejar中。我知道奇怪的情况。

我正在使用com.smokejumperit.gradle.OneJarPlugin插件(source here),很明显,它会获取文件列表,其中包含在onejar中:

project.task('oneJar', dependsOn:[project.tasks.jar, project.tasks.typedefOneJar]) {
...
inputs.files([jar.outputs.files, project.configurations.getByName("compile"), project.configurations.getByName("runtime")])
jar.output.files用于发布,因此我不希望发布第二个jar文件,并且这两个 project.configurations将为主要源jar定义依赖项,并且我也不希望第二个jar成为该文件的依赖项。

第二个jar文件是通过以下任务构建的:
task integrationJar(type: Jar) {
from sourceSets.integrationTest.output
classifier = 'integration'
}

...所以我可以通过 integrationJar.outputs.files访问生成的FileCollection。如果有一种明确的方法将其添加到 oneJar.input.files,我会很高兴,但是我不知道该怎么做。我已经尝试过这样的事情:
oneJar {
dependsOn 'integrationJar'
println integrationJar.outputs.files.getAsPath()
inputs.files.add(integrationJar.outputs.files)
println inputs.files.getAsPath()
}

...,但最后一次打印的结果仍然缺少集成jar文件。

有想法吗?

最佳答案

我不熟悉该插件的实现,但是如果inputs.files确定包含了什么内容,我会感到惊讶。 (通常,Gradle的最新检查只会消耗inputs。)我建议尝试使用gradle-one-jar插件,该插件似乎更灵活。

关于gradle - 将不依赖的第二个jar文件包含到胖的onejar中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17886567/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com