问题标签 [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 回答
350 浏览

gradle - 在 gradle maven 发布期间向库添加前缀

我为多项目构建设置了下一个配置:

但是前缀仅应用于构建的工件,而不是在我执行发布任务时。有没有办法用前缀配置发布?

0 投票
1 回答
606 浏览

android - Gradle maven 发布插件配置参考了动态创建的 gradle 任务

我的 build.gradle 文件中有一个如下所示的发布配置块

}

注意releaseJavadocsJar,这是一个定义如下的 gradle 任务:

当我同步 gradle 这条线

该出版物抱怨说

这意味着当 gradle 同步发生时,我的动态创建的任务还不存在。

有没有办法解决?

0 投票
2 回答
2323 浏览

java - 从 Gradle 中的 Maven 存储库获取最新的快照版本

我有一个项目,它使用 Gradle 将我们的 SNAPSHOT 工件发布到远程 Maven 存储库。

当我发布到 Maven 时,时间戳和内部版本号会附加到 Jar 名称中。我正在尝试从其他项目之一下载最新版本,即 myjar-1.6.0-20170926.190543-10.jar。除非我将其从 .gradle 中删除或重新启动我的工作空间,否则我无法下载。

依赖项目有以下

也试过了

但没有任何结果。让我知道如何解决这个问题?

0 投票
1 回答
342 浏览

gradle - Gradle Nexus 和 FlatDir 部署,无需 java-、ear- 或 war-plugin

我有一个由非 Java 项目组成的多项目 gradle(2.1 版!!)构建。

我想将生成的工件(.tar.gz 文件)部署到 Nexus 以及目录。

目前,我在块的根中定义存储库,build.gradle并再次为根文件中的块repositories中的每个子项目定义存储库。repositoriessubprojectsbuild.gradle

我将base插件应用于根项目,并将maven-publish插件应用于所有要部署工件的子项目。

我尝试按照此处的说明进行操作:

但没有任何效果。:-(

这就是我所做的:

这是创建我要上传的工件的compressTar自定义任务。Tar

当我执行时,./gradlew publishTarFilesPublicationToNexusDeployRepository我收到以下错误:

当我执行uploadArchives时,任务成功,但没有任何内容上传到任何地方,并且从输出看起来该uploadArchives任务仅针对未应用 maven-plugin 的子项目执行。

这样做的正确方法是什么?我应该在何时/何地应用哪些插件?

0 投票
1 回答
207 浏览

gradle - 读取外部 .gradle 文件时发布源 jar

我的项目中有一个 git 子模块(我无法控制),其中包含名为publish.gradle. 这个文件的内容是:

在我的build.gradle文件中,我有以下行:

apply from: "${rootDir}/submodule/gradle/publish.gradle"

当我尝试在此行之后添加以下行时:

然后发布正确的内容,除了pom存储库中的文件仅包含一个<dependencyManagement/>部分并且缺少所有依赖项。当我从上面的行中删除build.gradlepom正确的。

0 投票
0 回答
131 浏览

gradle - 简化 gradle 中的 jar 版本名称?

如何在 gradle 的构建 jar 中有一个简单的版本?我有一个像 name-version-yyyyMMdd.time-iteration-classifier.jar 这样的罐子——像这样。有没有办法没有这个yyyyMMdd.time-iteration。我使用maven-publish插件。

0 投票
0 回答
398 浏览

jenkins - Nexus 更新 buildNumber maven-metadata.xml

我正在将 Jenkins 的构建上传到 Nexus 存储库。如果构建成功,它会从存储在 Nexus 上的 maven-metadata.xml 中使用增加的 buildNumber 上传。但是,有时我们的构建会失败,这意味着我们不会向 nexus 上传任何内容。但是 Jenkins 的内部版本号增加了。我们希望 Jenkins 和 Nexus 中的 buildNumber 保持一致。

例子:

  • Jenkins 成功的 build#1(作为 buildNumber 1 上传到 Nexus)
  • Jenkins 上的 build#2 失败(没有上传到 Nexus)
  • build#3 on Jenkins 成功(作为buildNumber 3上传到 Nexus )

它以某种方式可定制吗?

编辑:我正在使用带有 Maven Publishing 插件的 gradle

0 投票
0 回答
246 浏览

java - 使用 'maven-publish' 插件发布 jar 依赖项

我在 java 的 IntelliJ IDE 中有一个 gradle 项目。
我的依赖是这样的:

问题是当我在已发布的 jar 中发布我的项目时,我没有找到 somejar.jar 那么我该如何发布它。
我希望 someJar.jar 中的所有类都在我的主包旁边。

0 投票
1 回答
2499 浏览

gradle - gradle发布具有不同分类器的jar,缺少依赖项

Gradle 新的 maven-publish 插件:

对于具有不同分类器的多个罐子,例如,

源集

要构建的罐子:

bar.jar 对 foo jar 具有编译依赖性。

摇篮:

已发布的存储库:

只有一个没有任何依赖关系的pom。

现在用不同的 artifactId (s) 将它们分开

每个 jar 都有自己的 POM:

两个问题:

  1. 分类器 (foo, bar) 不在 jar 名称中的版本之后。
  2. 为 foo 和 bar 生成的 POM.xml 文件没有依赖关系。
0 投票
1 回答
1128 浏览

android - Android:带有 Retrofit 的库项目导致 NoClassDefFoundError

我正在尝试构建一个使用 OkHttp 和 Retrofit 来授予对我们 REST 后端的访问权限的 android 库项目。

只要我使用api而不是implementation依赖于com.squareup.retrofit2:converter-gson. 似乎这是唯一需要这个的依赖项(所有其他依赖项都可以与 一起使用implementation)。

implementation这里使用时,调用应用程序将崩溃NoClassDefFoundError

java.lang.NoClassDefFoundError:解析失败:Lcom/google/gson/GsonBuilder;


我正在使用consumerProguardFiles一堆 proguard-rule-files(例如,来自这个repo的一个用于 okhttp3、retrofit2 等)。所有这些都将被打包到一个 AAR 中,因此还应该添加依赖项中的规则。

似乎我缺少converter-gson. com.squareup.retrofit2:converter-gson有人可以发布在图书馆项目中使用的规则吗?


编辑 1

目前的改造 proguard 规则是:

如前所述,这似乎还不够。也许我需要别的东西converter-gson!?

编辑 2

我的依赖项如下所示:

我正试图摆脱api最后一个,因为我在使用这个库的应用程序中不需要它(或者这是无法避免的)?


编辑 3

嗯,也许 proguard 是错误的关键字。其实问题在于使用implementationover api。因此依赖项不会暴露给消费者。请参阅https://stackoverflow.com/a/44493379/2170109

但是我不明白为什么converter-gson只有图书馆调用时我需要向图书馆的消费者公开GsonBuilder