首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用maven-发布和工件-gradle-plugin生成maven-metata.xml?

如何使用maven-发布和工件-gradle-plugin生成maven-metata.xml?
EN

Stack Overflow用户
提问于 2015-03-03 00:20:00
回答 4查看 7.9K关注 0票数 7

我用groovy编写了一个Gradle插件,并使用Gradle构建它。我有一个本地网络Artifactory服务器,我使用Gradle Artifactory插件和Gradle中的maven发布插件发布结果。我有另一个Gradle构建脚本,它依赖于这个插件作为依赖项。如果我用一个特定的版本列出我的依赖项,我就可以让所有这些都正常工作了。我试过使用maven版本范围(例如。( '[1.0,2.0)'),但这不能说明它找不到maven-metadata.xml。我查了一下Artifactory,果然,它不在那里。我需要做什么来生产它,最好是在插件的构建过程中?

下面是我定制的gradle插件的build.gradle文件:

代码语言:javascript
复制
buildscript {
    repositories {
        maven {
            url "${artifactory_contextUrl}/plugins-release"
            credentials {
                username = "${artifactory_user}"
                password = "${artifactory_password}"
            }
        }
    }
    dependencies {
        classpath group: 'org.apache.directory.studio', name: 'org.apache.commons.io', version: '2.4'
        classpath group: 'org.jfrog.buildinfo', name: 'build-info-extractor-gradle', version: '2.0.9'
    }
}

plugins {
    id 'com.jfrog.artifactory' version '3.0.1'
}

apply plugin: 'groovy'
apply plugin: 'maven-publish'

artifactory {
    contextUrl = "${artifactory_contextUrl}"
    publish {
        repository {
            repoKey = 'plugins-snapshot-local'
            username = "${artifactory_user}"
            password = "${artifactory_password}"
            maven = true
        }
        defaults {
            publications ('mavenJava')
        }
    }
    resolve {
        repository {
            repoKey = 'libs-release'
            username = "${artifactory_user}"
            password = "${artifactory_password}"
            maven = true
        }
    }
}

dependencies {
    compile gradleApi()
    compile localGroovy()
}

publishing {
    publications {
        mavenJava(MavenPublication) {
            from components.java
        }
    }
}

我已经搜索了Gradle、Artifactory和Maven文档,以了解maven-metadata.xml以及如何生成和部署。这是合理的,我可能可以手动构建一个,但我找不到任何具体解释如何使用maven发布插件或工件工厂- Gradle插件在gradle中自动生成它。我不想手动更新文件,因为这会挫败自动化的努力,而且我也不想切换到mvn,因为我已经在Gradle上投入了那么多。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-03-03 21:54:11

必须将groupId添加到publications部分。一旦实现,maven-metadata.xml文件就会被发布到工件存储库。

代码语言:javascript
复制
publishing {
    publications {
        mavenJava(MavenPublication) {
            groupId = 'com.group'
        }
    }
}
票数 5
EN

Stack Overflow用户

发布于 2020-02-06 01:33:35

我也遇到了同样的问题,结果发现Artifactory存储库不是一个Maven回购,而是一个通用的回购。我花了很长时间才注意到这一点,因为我没有创建回购,而且我假设它是一个Maven repo,而部署/解决其他方面的工作就像预期的那样。

切换到Maven repo之后,在发布时生成maven-metadata.xml。

票数 1
EN

Stack Overflow用户

发布于 2015-03-03 01:39:31

maven-metadata.xml应该由Artifactory来处理。您在Artifactory中的本地存储库布局是什么?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28821866

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档