我有gradle多模块项目配置与kotlin脚本。我想添加发布到maven存储库,我找到了maven发布插件。但它似乎跳过了为每个项目配置的版本:
MyProject/build。格拉德尔。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/子项目1/构建。格拉德尔。kts
:
version = "1.0.0-SNAPSHOT"
gradle发布
输出:
test: my.project subproject1 unspecified
artifact file does not exist: '.../MyProject/subproject1/build/libs/subproject1.jar'
文件子项目1。jar不存在,但子项目1-1.0.0-SNAPSHOT。jar
可以。如何使gradle获得模块的正确版本?
我在使用maven publish
插件时发现了类似的问题:
我试图设置存储库URL
,这取决于gradle文档中描述的项目版本和这个答案。
但是我发现版本
总是解析为(如问题中所述)默认(未设置)值:未指定
。
所以我猜这些文档示例是针对项目的构建的。gradle
而不是一般的gradle
脚本。
无论如何,我相信问题是由于gradle
脚本中块的执行时间。无法在我想要的地方访问project.version
。因此,我最终将一个参数传递给具有-P参数
标志的gradlew
命令。
Gradle有一个配置
和一个执行
阶段。
请参阅文档:
>
https://www.oreilly.com/library/view/gradle-beyond-the/9781449373801/ch03.html
还有一个明显相似的问题,https://discuss.gradle.org/t/maven-publication-closure-is-evaluated-too-early/19911
关于您的问题,可能与我描述的相同,或者原因更简单:
gradle
文件的结构,它似乎与maven publish文档中指定的层次结构不匹配。特别是,repositories{}
块应该与publications{}
处于同一级别,而不是在其内部
可能相关:
我正在使用maven发布插件进行发布管理。我运行mvn release:prepare on release分支。这样做的结果是,我有一个带有发布版本的git标记,以及带有下一个开发快照版本的发布分支。 现在,我想改变这个过程,以便发布分支总是有正式版本(没有SNAPSHOT版本的碰撞)。 这样做的原因是在生成构建时,我希望发布分支和发布标签具有相同的HEAD提交。 如果我可以跳过碰撞版本的最后一
问题内容: 我有一个文件,其中包含一些应在Go 1.5+上运行的测试。 我可以使用并进行各种比较来获取Go运行时版本。 但是,测试文件import 。该软件包需要from ,但仅在Go 1.5+上可用。 这会在我的CI环境中导致这些错误,从而导致构建失败: 我尝试添加到文件的顶部,但是没有用。 无论如何,我是否可以限制单元测试文件,以便仅在Go 1.5+系统上对其进行构建和测试? 问题答案: 在构
我正在项目中实现dexguard,但生成的应用程序正在崩溃,并出现以下错误: 引起原因: JAVAlang.UnsatifiedLinkError:未找到本机方法:com。杰马尔托。Android根内部的梅德利尼。goMedlJni:(Ljava/lang/String;Ljava/lang/String;)在com。杰马尔托。Android根内部的梅德利尼。goMedlJni(本机方法) 我还解
我有一个文件包:“100.txt”、“1000.txt”、“10000.txt”、“100000.txt”、“1000000.txt”。但当我启动程序时,它会跳过100和1000个txt文件。你能告诉我为什么吗?
问题内容: 我想使用 版本号插件 来格式化BUILD_NUMBER变量。 我在下面的方式进行配置的: 图片 环境变量名称:FORMATTED_BUILD_NUMBER版本号格式字符串:$ {BUILD_NUMBER,XXX} 但是,当我使用FORMATTED_BUILD_NUMBER变量($ {FORMATTED_BUILD_NUMBER})时,它将返回未格式化的内部版本号。 所以我想看到类似的东
我正在尝试使用Maven版本插件将所有子POM升级到父版本,并在父POM中执行所有子模块的构建。Pom文件如下所示 现在,如果我使用Eclipse中的命令在基本POM上运行Maven构建 子模块正在正确构建,但是如果我将base pom版本更新到2.0并使用版本插件命令 版本正在更新,但子模块尚未构建。只有基本pom得到构建。 我是否必须明确指定在某个阶段构建子模块?我错过了什么?。