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

时间:2013-06-10 20:27:26

标签: maven dependencies gradle pom.xml

我将工件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?

1 个答案:

答案 0 :(得分:1)

执行此操作的方法是自定义生成的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插件提供了类似的钩子。

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

相关问题