首页 文章

如何使用maven-publish和artifactory-gradle-plugin生成maven-metata.xml?

提问于
浏览
4

我在groovy中编写了一个Gradle插件,并使用Gradle来构建它 . 我有一个本地网络Artifactory服务器,我将结果发布到使用Gradle Artifactory插件和Gradle中的maven-publish插件 . 我有另一个Gradle构建脚本,它依赖于这个插件作为依赖项 . 如果我用特定版本列出我的依赖项,我已经能够使这一切工作 . 我曾尝试使用maven版本范围(例如'[1.0,2.0)'),但这无法说它找不到maven-metadata.xml . 我查了Artifactory,果然,它不存在 . 我需要做什么来制作它,最好是在插件的构建过程中?

这是我的自定义gradle插件的build.gradle文件:

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-publish插件或artifactory-gradle-plugin在Gradle中自动生成它的任何内容 . 我不想手动更新文件,因为这会破坏自动化工作,我不想切换到mvn,因为我已经在Gradle投入了这么多 .

2 回答

  • 3

    我需要在我的出版物中添加groupId . 一旦我这样做,Artifactory就会生成maven-metadata.xml .

    publishing {
        publications {
            mavenJava(MavenPublication) {
                from components.java
                groupId = 'com.group'
            }
        }
    }
    
  • 1

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

相关问题