标签: maven-central

使用gradle关闭并释放maven central上的工件

我有这个gradle脚本:

def configureUploadArtifacts(groupId, repoUrl, _packaging) {
    def gpgKeyId = System.getenv('GPG_KEY_ID')
    def gpgPassword = System.getenv('GPG_KEY_PASSWORD')
    def gpgFile = System.getenv('PATH_TO_GPG_FILE')

    project.group = groupId;
    project.archivesBaseName = name
    project.version = getVersionNameFromFile()

    ext."signing.keyId" = gpgKeyId
    ext."signing.password" = gpgPassword
    ext."signing.secretKeyRingFile" = gpgFile

    uploadArchives {
        apply plugin: 'maven'
        apply plugin: 'signing'

        signing {
            sign configurations.archives
        }

        def userName = System.getenv('OSSRH_USER_NAME');
        def password = System.getenv('OSSRH_PASSWORD');

        repositories {
            mavenDeployer {
                beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }

                repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") {
                    authentication(userName: userName, password: password)
                }

                snapshotRepository(url: "https://oss.sonatype.org/content/repositories/snapshots/") {
                    authentication(userName: …
Run Code Online (Sandbox Code Playgroud)

staging artifact gradle maven-central mavendeployer

5
推荐指数
1
解决办法
205
查看次数

Maven Central 与其他存储库?

在 Maven 中心,我可以看到其他几个可用于某些库的存储库。例如 - Apache Common BeanUtils 在 Central、Redhat GA、JBoss 3rd-party 等中可用。库名称也会更改。例如,Maven CCentral 具有 1.9.4 等版本,而 Redhat GA 具有 1.9.3.redhat-1 等版本。

单击此 URI 可查看详细信息。 https://mvnrepository.com/artifact/commons-beanutils/commons-beanutils

我的问题是 - 标记为 Central 的 Repo 和“Redhat GA”之间有什么区别?

附上 :Maven GA 的图像;回购协议也在这里。在此输入图像描述

redhat maven maven-central

5
推荐指数
1
解决办法
1696
查看次数

Gradle 下载不需要的依赖

我正在尝试使用 Gradle 从 Maven Central 下载我新发布的依赖项:

repositories {
  mavenCentral()
}

dependencies {
  implementation 'io.github.iltotore:ec-client_2.13:1.0-fixed'
}
Run Code Online (Sandbox Code Playgroud)

尝试构建时,出现错误:

Could not find io.github.iltotore:core:1.0-fixed.
Required by:
    project : > io.github.iltotore:ec-client_2.13:1.0-fixed
Run Code Online (Sandbox Code Playgroud)

但是 io.github.iltotore:core:1.0-fixed 不在 lib 的 pom 中,我的朋友可以毫无错误地使用它。

为了解决这个问题,我尝试了:

  • 跑步 gradlew build --refresh-dependency

  • 删除 ~/.gradle/ 中的缓存

  • 使用 Intellij IDEA 使缓存失效

  • 删除我的本地Maven

但这个问题仍然存在。

我将 Gradle 6.5 与 Intellij IDEA 2020.1.2 一起使用。

java gradle maven-central

5
推荐指数
1
解决办法
298
查看次数

如何在mavenrepository中向artefact添加类别和标签

有谁可以解释如何更新我的工件的 Maven 存储库存储库中的这些值:

  • 类别
  • 标签

Maven 工件描述

maven maven-central maven-repository

5
推荐指数
1
解决办法
444
查看次数

使用私有子模块发布到 MavenCentral

我们的 Android 项目是一个 monorepo,包含几个应用程序模块,甚至更多的库模块。其中一个库应该可供其他开发人员访问,因此我们决定将其部署在 MavenCentral 上。我们称之为图书馆吧L。然而,该库还包含 monorepo 内对另一个模块的依赖关系(我们称之为 module m)。为了测试L其他开发人员是否可以正确访问该库,我们创建了一个演示Android项目。但是,当尝试包含发布库的依赖项时L,通常一切都很好,只是m在演示 Android 项目中无法解析该模块。

可以理解的是,该模块m无法解析,因为它既不能在 MavenCentral 上使用,也不能作为 AAR 文件使用。我们无法发布该模块m,因为它不应该可供其他人获取,但将其作为 AAR 文件包含也不起作用。终端抛出错误:

构建 AAR 时不支持直接本地 .aar 文件依赖项。生成的 AAR 将被破坏,因为任何本地 .aar 文件依赖项中的类和 Android 资源都不会打包在生成的 AAR 中。在这种情况下,以前版本的 Android Gradle 插件也会产生损坏的 AAR(尽管不会抛出此错误)。

所以问题来了 - 一个包含无法公开的子模块的项目如何发布到存储库mavenCentral

android gradle multi-module maven-central aar

5
推荐指数
0
解决办法
197
查看次数

使用 Ivy 下载 JavaFX 依赖项

我希望使用 Ivy 从 Maven Central 获取 JavaFX。

这可以获取 Java 依赖项,但不能获取本机依赖项。

预期的:

  • javafx-graphics-21.0.1.jar
  • javafx-graphics-21.0.1-linux.jar

实际的:

  • javafx-graphics-21.0.1.jar
  • 丢失的 javafx-graphics-21.0.1-linux.jar

我如何获取原生组件?

ivy.xml

<ivy-module version="2.0" xmlns:m="https://ant.apache.org/ivy/maven">
    <info organisation="org.my" module="my-proj"/>
    <dependencies>
        <dependency org="org.openjfx" name="javafx-graphics" rev="21.0.1" />
    </dependencies>
</ivy-module>
Run Code Online (Sandbox Code Playgroud)
ivy && ls ~/.ivy2/cache/org.openjfx/javafx-graphics/jars
# javafx-graphics-21.0.1.jar
Run Code Online (Sandbox Code Playgroud)

这是POM:https://repo1.maven.org/maven2/org/openjfx/javafx/20.0.1/javafx-20.0.1.pom

相关:如何使 Maven 在 linux 上请求正确的 javafx 依赖项

我添加maven-2标签是因为Ivy 使用 Maven 2 存储库

在没有特定设置的情况下,Ivy 使用 Maven 2 存储库来解析您在 Ivy 文件中声明的依赖项。

java maven-2 javafx ivy maven-central

5
推荐指数
1
解决办法
48
查看次数

Maven检查本地存储库,但从中央下载.为什么?

我们有一个用于缓存的本地神器存储库设置.它在我们的项目中配置,但是当我查看构建过程的stdout时,我看到这样的行

Downloading: http://ourserver/artifactory/our-repo/javax/transaction/jta/1.1/jta-1.1-sources.jar
Downloading: http://repo1.maven.org/maven2/javax/transaction/jta/1.1/jta-1.1-sources.jar
Downloaded: http://repo1.maven.org/maven2/javax/transaction/jta/1.1/jta-1.1-sources.jar (25 KB at 54.5 KB/sec)
Run Code Online (Sandbox Code Playgroud)

所以看起来它试图从本地存储库和Maven Central下载jar然后实际使用Maven Central.

如果我在浏览器中复制本地存储库的URL,我会毫无问题地获得jar.

如果我检查神器的管理应用程序,我可以看到人工制品.

任何人都可以解释为什么使用Maven Central吗?

更新:发生了什么以及我做了什么:

orien的答案解释了为什么Maven Central被访问了.

mliebelt评论暗示我对我的解决方案:看起来我们的本地存储库在必须首先下载工件时才会缓慢回答.我将缓存配置为在请求pom时急切地下载jar和源.这应该减少从其他地方下载的工件数量.

artifactory maven maven-central

4
推荐指数
1
解决办法
4197
查看次数

从Maven Central动态链接到最新的'jar-with-dependencies'

我正在尝试使用Maven中央API为最新版本的工件提供动态下载链接.虽然这适用于普通的jar,但我似乎无法将其链接到工件的'jar-with-dependencies'版本.

使用该com.ning:nagios工件,可以下载最新版本

http://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=com.ning&a=nagios&v=LATEST

假设我可以使用l查询参数(基于链接的API)来指定'jar-with-dependencies'分类器,但链接只下载普通的jar.

http://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=com.ning&a=nagios&v=LATEST&l=jar-with-dependencies

有没有办法链接到这个版本的工件?

nexus sonatype maven maven-central

4
推荐指数
1
解决办法
916
查看次数

当您不指定任何插件时,Maven 如何决定使用哪个版本的插件?

我认识到 Maven 并不总是使用最新版本的插件。

例如,org.codehaus.mojo:sonar-maven-plugin2.7 版本已于 10 月 19 日发布,但在 10 月 23 日,Maven ( mvn sonar:sonar)仍在使用 2.6 。

我什至记得一些插件,其中最新版本比 Maven 决定使用的版本高出几个小版本。

是否有任何(中央)索引/列表/数据库,Maven 会在其中查找要使用的版本?如果是,在哪里可以手动访问?

maven-plugin maven maven-central maven-metadata

4
推荐指数
2
解决办法
1334
查看次数

由于没有 Java 代码或资源,如何使用空的 javadoc jar(或空的源 jar)将工件上传到 Maven Central?

我有这个小模块,它只包含一些属性文件。属性文件驻留在项目的根目录中,需要留在那里。而已。当通过 sonatype 上传到 Maven 中心时,javadoc jar 是强制性的,所以我必须创建一个。

所以我没有 src/main/java 或 src/main/resources。我该怎么做?

javadoc 插件没有为此提供任何选项。

对于源 jar,同样如此。Sonatype 至少需要一个源 jar 的存在,即使它是空的......

迄今为止(2018 年 12 月),我无法在互联网上找到可行的解决方案。

javadoc maven-central

3
推荐指数
1
解决办法
230
查看次数