maven - 如何在 Gradle 生成的 POM 中声明存储库

标签 maven dependencies gradle pom.xml

我正在将 Artifact A 发布到 GitHub 上的一个自我维护的 Maven 存储库。该项目有几个传递依赖项 B、C、D,它们托管在不同的存储库中。依赖项 B、C、D 在 A 的 gradle 生成的 pom.xml(uploadArchives)中指定,但不是存储库的路径。因此,在另一个项目中将 A 指定为依赖项时,不会下载传递依赖项 B、C、D。

是否可以告诉 gradle 在 A 的 pom.xml 中包含 B、C、D 的 maven 存储库的 url?

最佳答案

这样做的方法是自定义生成的 POM。这是一个示例,假设 maven插件用于发布:

uploadArchives {
    repositories {
        mavenDeployer {
            // add further information to the generated POM
            // syntax maps 1:1 to POM syntax
            pom.project {
                // could also generate this programmatically
                // based on the repos declared in the build
                repositories {
                    repository {
                        id 'myrepo'
                        url 'http//my.repo.com'
                    }
                }
            }
        }
    }
}

新的,正在孵化的maven-publish插件提供了类似的钩子(Hook)。

请注意,在解析依赖项时,Gradle 本身不支持在 POM 中声明的存储库,而仅支持您的构建声明的存储库。另请查看 http://www.sonatype.com/people/2009/02/why-putting-repositories-in-your-poms-is-a-bad-idea/ .

关于maven - 如何在 Gradle 生成的 POM 中声明存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17032231/

相关文章:

java - Pax-exam Karaf 安全 Maven 存储库身份验证

java - Maven 网络资源问题

java - Gradle Tomcat 插件依赖

java - Maven 暂时依赖未引入

java - 无法在 Groovy gradle 项目中找到或加载主类

java - getResourceAsStream() 找不到属性文件。检查 CLASSPATH 或类加载器

java - 为什么liquibase无法解析db.changelog类路径?

java - 如果库因未找到错误类而存在,则在 Web 项目中检查什么?

安卓 : Best way to add library dependency to Android Library

gradle - 如何在 intellij 中处理多个 gradle 项目和依赖项