我已经用Groovy编写了Gradle插件,并使用Gradle来构建它。我有一个本地网络Artifactory服务器,我将结果发布到使用Gradle中的Gradle Artifactory插件和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中投入了很多。
最佳答案
必须将groupId
添加到publications
部分。一旦实现,就将maven-metadata.xml
文件发布到 Artifact 存储库。
publishing {
publications {
mavenJava(MavenPublication) {
groupId = 'com.group'
}
}
}