gpt4 book ai didi

java - Maven-publish gradle插件跳过版本

转载 作者:太空宇宙 更新时间:2023-11-04 11:28:01 25 4
gpt4 key购买 nike

我有使用 kotlin-script 配置的 gradle 多模块项目。我想将发布添加到 Maven 存储库,并找到了它的 maven-publish 插件。但似乎跳过了为每个项目配置的版本:

MyProject/build.gradle.kts:

subprojects {
apply {
plugin("maven-publish")
}
configure<PublishingExtension>() {
publications {
repositories { ... }
create<MavenPublication>("myPublication") {
from(components.getByName("java"))
logger.lifecycle("test: ${project.group} ${project.name} ${project.version}")
}
}

MyProject/subproject1/build.gradle.kts:

version = "1.0.0-SNAPSHOT"

gradle 发布输出:

test: my.project subproject1 unspecified
artifact file does not exist: '.../MyProject/subproject1/build/libs/subproject1.jar'

文件 subproject1.jar 不存在,但 subproject1-1.0.0-SNAPSHOT.jar 存在。如何让gradle获取正确版本的模块?

最佳答案

我在使用maven-publish插件时发现了类似的问题:

我试图根据项目版本设置存储库 URL,如 gradle docs here 中所述。和 this answer .

但我发现版本始终解析为(如问题中所示)作为默认(未设置)值:未指定

So I guess those documentation examples are for a project's build.gradle and not a general gradle script.

无论如何,我认为问题是由于 gradle 脚本中的 block 的执行时间造成的。无法在我想要的地方访问 project.version。因此,我最终使用 -Pparameter 标志将参数传递给 gradlew 命令。

Gradle has a configuration and then an execution stage.

Refer to documentation:

关于你的问题,可能和我描述的一样,或者原因可能更简单:

  • 查看 gradle 文件的结构,它似乎与 maven-publish documentation 中指定的层次结构不匹配。 。特别是,repositories {} block 应与 publications {} 位于同一级别,而不是在其内部。

可能相关:

关于java - Maven-publish gradle插件跳过版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44135614/

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