问题标签 [maven-publish]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
maven - 删除 JAR 名称中的“-all”后缀,当它由 maven-publish gradle 插件发布时
maven-publish
插件以“project-1.0-all.jar”格式发布名称的 JAR
我使用了 Maven,一切正常。现在我已经使用 maven-publish 插件迁移到 Gradle。
这是我的publishing
Gradle 构建脚本部分
这是我的完整构建脚本。
预期的:
以“project-1.0.jar”格式命名的 JAR 已发布。
实际的:
名称格式为“project-1.0-all.jar”的 JAR 已发布。
java - 在任何其他任务之前完成清洁任务
我想制作 releaseBuild 任务,在构建项目之前执行干净的任务。
我已经准备好了脚本,它可以很好地在 releaseBuild 任务之前进行清理,而不是在完成之前清理,这要归功于jar.mustRunAfter(clean)
.
但是,我还希望有可能执行仅在 releaseBuild 成功完成后才会执行的 publishToMavenLocal 任务(因此清理和构建)。然后就有问题了。
gradle releaseBuild
效果很好。
gradle publishToMavenLocal
显示错误:
清洁是在生成 pom 文件之后。
当我取消注释行时generatePomFileForMavenJavaPublication.mustRunAfter(clean)
,出现错误:
gradle - gradle maven-publish 插件仅发布第一个子模块工件
我有一个多模块项目如下:
顶级模块 gradle 配置如下所示:
sub-module-1 和 sub-module-2 的 gradle 配置如下:
当我按如下方式使用发布任务时:
gradle -i build publish
我发现只发布了 sub-module1 中的工件。
真正奇怪的是,这只发生在 Jenkis 作业中(在 linux slave 上)运行时。在我的 Windows 开发机器上运行时不会发生这种情况!
我想知道为什么 sub-module2 中的工件没有发布。
maven - Gradle 将 RPM 发布到 Nexus Yum Repo 在 sha1 文件上失败
我正在尝试通过 Gradle 将我们项目中的 RPM 工件发布到 Nexus 上的 Yum Repo:
当我运行./gradlew publish
此任务时,会启动并开始上传 90MB 的主要 .rpm 工件。然后它在此之后失败并出现以下错误:
如何防止 .sha1 文件被上传?我只希望上传 RPM(这显然是这个 repo 中唯一允许的东西)。
我也尝试过使用maven-publish
而不是,ivy-publish
但两者都给出了类似的问题。maven-publish
尝试上传类似失败的 .pom。
我可以使用 curl 手动上传 RPM,但我更愿意使用 Gradle 插件和标准。
gradle - Maven-Publish 未生成适当的任务
我正在创建一个 android 库,我基本上在使用
据我所知,这应该是创建一个名为“publishMavenAarToMavenRepository”的依赖任务,但我从“gradlew tasks”得到的只是以下内容:
我没有得到这样的任务,因此“发布”没有先决条件,并且成功执行,实际上什么都不做。这真是令人沮丧。我究竟做错了什么?插件的交互方式是否不好?我在 buildscript 和“digital.wup:android-maven-”中同时使用了“com.android.tools.build:gradle:3.3.0”和“com.android.tools.build:gradle:3.3.1”发布:3.6.2"。
gradle - gradle & maven-publish:“来自”是什么意思?
我在一个项目中有这一行(我使用 maven-publish 插件)
“来自components.java”的用途是什么?
java - 如何添加附录来发布工件?
我需要添加附录来发布工件。对于构建任务,这很容易。但是当我尝试通过 maven-publish 插件发布工件时它不起作用。未添加附录。
结果我得到以下工件:
但是当我使用任务 publishToMavenLocal 时,我得到了关注:
你怎么能看到附录没有添加。是否有任何解决方案可以添加附录以发布工件?
gradle - 为什么在 buildSrc 目录中的自定义 gradle.kts 文件中找不到“发布”功能?
我有一个正在构建的自定义 gradle.kts 脚本,它将为我们所有的各种模块发布到我们的 sonatype 存储库的 Maven 发布,但遇到一个奇怪的错误。这是我的maven-deploy.gradle.kts
文件的内容:
我可以在文件中很好地运行任务和诸如此类的东西maven-deploy.gradle.kts
,但是尝试使用publishing
gradle 文档中的函数被证明是不可能的。有任何想法吗?我正在使用 gradle 版本 4.10.3(我需要 Android 支持)。该maven-deploy.gradle.kts
文件在我的主项目文件中buildSrc/src/main/kotlin
并且正在被添加。id("maven-deploy")
build.gradle.kts
gradle - 如何在 Gradle 4.10.3 中使用 Kotlin Gradle DSL 从 sourceSets 获取“allJava”?
我正在尝试遵循 Gradle 4.10.2 文档中的 Maven 发布指南,但是由于它都在 Groovy 中,所以遇到了一些困难。这是示例所说的操作:
这就是我想要做的:
allJava
正在返回未找到,不幸的是。在 Kotlin Gradle DSL For Gradle 版本 4.10.3 中执行此操作的正确方法是什么?
gradle - 生成的 .pom 不包括传递依赖项
有一点问题,我生成的 .pom(使用 Gradle v4.10.3 和 maven-publish gradle 插件)不包括传递依赖。从我读过的内容来看,它应该是读取项目依赖项并包括它们(我认为!),而不是我必须在 .pom 中手动声明它们。我确实查看了 Pom 对象的文档,但没有看到任何可以声明传递依赖的方法。
https://gitlab.com/snippets/1822620
这是我的项目根目录的 build.gradle.kts 文件的片段,以及来自我的子项目的 build.gradle.kts 文件 ( android-core
) 的代码。如您所见,子项目android-core
依赖于子项目core
,但是当我生成 .pom 时它没有被声明为这样。
是否有一个我应该设置的设置告诉 .pom 在哪里找到依赖项?还是我以完全错误的方式解决这个问题?任何和所有的帮助表示赞赏!
编辑:我的管道日志文件中有这个,这可以解释为什么android-core
看不到core
依赖(也许?)
但是,我不知道他们为什么会乱序生成 Pom,因为它正在通过一个具有预定义顺序的列表。
编辑:解决方案好的,以上是问题 - 上传顺序,我认为是因为 Maven Publish 插件正在异步上传,并且内容core
需要更长的时间才能解决,因为它具有更多的依赖关系并且整体更大。我将我的发布切换为基于每个子项目,并在 CI 脚本文件中一个接一个地显式调用,现在它可以按预期与所有依赖项一起工作。
旁注:当我切换到单独的子项目发布方法时,我确实必须将插件切换到maven-publish
插件android-maven-publish
以使其支持发布(因为如果你也有,你不能将java
插件包含在 android 项目中com.android.library
)。我还不得不切换from(components["java"])
到from(components["android"])
.
我认为这不是最好的方法,但在这一点上,至少它有效。我将来会尝试更好地优化它(欢迎任何实际答案!)