gpt4 book ai didi

jar - Gradle项目依赖项未引用SNAPSHOT jar

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

我正在尝试在多项目Gradle构建中创建一个胖jar文件,如下所示:

root
+-- project1
+-- project2

project1提供了基本功能,然后project2将其用于创建可执行jar。可执行JAR需要包含依赖项中的所有代码,以便可以独立运行。

对于外部依赖性,这很好。在project2中,我创建一个新配置:
apply plugin: 'maven'
apply plugin: 'java'

configurations {
// configuration for JARs that need to be included in the final packaging
includeInJar
}

然后添加依赖项:
dependencies {
includeInJar 'com.fasterxml.jackson.core:jackson-databind:2.2.3'
...

configurations.compile.extendsFrom(configurations.includeInJar)
}

包装如下所示:
jar {
manifest {
attributes "Main-Class": "com.acme.project1.MyTest"
}
// import all dependencies into the Jar so that it can be run easily
from {
configurations.includeInJar.collect {
it.isDirectory() ? it : zipTree(it)
}
}
}

该jar是使用外部依赖项中的所有文件正确构建的。问题来自对project1的项目依赖关系:
includeInJar project(':project1')

如果存在此问题,当它尝试组装JAR时会出现错误,因为它不存在于project1 project1-0.4.0.jar目录中,无法找到jar(例如 build/libs)。该消息是正确的,因为project1建立了一个SNAPSHOT jar(例如 project1-0.4.0-SNAPSHOT.jar)。

问题是,当项目正在构建SNAPSHOT jar时,为什么配置引用非SNAPSHOT jar?我可以更改什么才能找到正确的 jar ?

最佳答案

作为评论:

我认为,fatjar并不是一个很好的模式。也许Gradle application plugin适合您的需求?

关于jar - Gradle项目依赖项未引用SNAPSHOT jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30728235/

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