问题标签 [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.

0 投票
1 回答
992 浏览

maven - 删除 JAR 名称中的“-all”后缀,当它由 maven-publish gradle 插件发布时

maven-publish插件以“project-1.0-all.jar”格式发布名称的 JAR

我使用了 Maven,一切正常。现在我已经使用 maven-publish 插件迁移到 Gradle。

这是我的publishingGradle 构建脚本部分

这是我的完整构建脚本

预期的:

以“project-1.0.jar”格式命名的 JAR 已发布。

实际的:

名称格式为“project-1.0-all.jar”的 JAR 已发布。

0 投票
1 回答
1093 浏览

java - 在任何其他任务之前完成清洁任务

我想制作 releaseBuild 任务,在构建项目之前执行干净的任务。

我已经准备好了脚本,它可以很好地在 releaseBuild 任务之前进行清理,而不是在完成之前清理,这要归功于jar.mustRunAfter(clean).

但是,我还希望有可能执行仅在 releaseBuild 成功完成后才会执行的 publishToMavenLocal 任务(因此清理和构建)。然后就有问题了。

gradle releaseBuild效果很好。 gradle publishToMavenLocal显示错误:

清洁是在生成 pom 文件之后。

当我取消注释行时generatePomFileForMavenJavaPublication.mustRunAfter(clean),出现错误:

0 投票
1 回答
735 浏览

gradle - gradle maven-publish 插件仅发布第一个子模块工件

我有一个多模块项目如下:

顶级模块 gradle 配置如下所示:

sub-module-1 和 sub-module-2 的 gradle 配置如下:

当我按如下方式使用发布任务时:

gradle -i build publish

我发现只发布了 sub-module1 中的工件。

真正奇怪的是,这只发生在 Jenkis 作业中(在 linux slave 上)运行时。在我的 Windows 开发机器上运行时不会发生这种情况!

我想知道为什么 sub-module2 中的工件没有发布。

0 投票
0 回答
280 浏览

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 插件和标准。

0 投票
1 回答
301 浏览

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"。

0 投票
1 回答
59 浏览

gradle - gradle & maven-publish:“来自”是什么意思?

我在一个项目中有这一行(我使用 maven-publish 插件)

“来自components.java”的用途是什么?

0 投票
0 回答
67 浏览

java - 如何添加附录来发布工件?

我需要添加附录来发布工件。对于构建任务,这很容易。但是当我尝试通过 maven-publish 插件发布工件时它不起作用。未添加附录。

结果我得到以下工件:

但是当我使用任务 publishToMavenLocal 时,我得到了关注:

你怎么能看到附录没有添加。是否有任何解决方案可以添加附录以发布工件?

0 投票
1 回答
2083 浏览

gradle - 为什么在 buildSrc 目录中的自定义 gradle.kts 文件中找不到“发布”功能?

我有一个正在构建的自定义 gradle.kts 脚本,它将为我们所有的各种模块发布到我们的 sonatype 存储库的 Maven 发布,但遇到一个奇怪的错误。这是我的maven-deploy.gradle.kts文件的内容:

我可以在文件中很好地运行任务和诸如此类的东西maven-deploy.gradle.kts,但是尝试使用publishinggradle 文档中的函数被证明是不可能的。有任何想法吗?我正在使用 gradle 版本 4.10.3(我需要 Android 支持)。该maven-deploy.gradle.kts文件在我的主项目文件中buildSrc/src/main/kotlin并且正在被添加。id("maven-deploy")build.gradle.kts

0 投票
1 回答
748 浏览

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 中执行此操作的正确方法是什么?

0 投票
0 回答
275 浏览

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"]).

我认为这不是最好的方法,但在这一点上,至少它有效。我将来会尝试更好地优化它(欢迎任何实际答案!)