我在Groovy中编写了一个Gradle插件,并使用Gradle构建它。我有一个本地网络Artifactory服务器,我将结果发布为使用Gradle中的Gradle Artifactory插件和maven-publish插件。我有另一个Gradle构建脚本依赖这个插件作为依赖。我已经能够得到这一切工作,如果我列出我的依赖与特定版本。我试图使用maven版本范围(例如'[1.0,2.0)'),但是这个失败说它找不到maven-metadata.xml。我检查了Artifactory,果然,它不在那里。我需要做什么来制作它,最好是在插件的构建过程中?如何用maven-publish和artifactory-gradle插件生成maven-metata.xml?
这里是我的自定义插件的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
}
}
}
我搜索的摇篮,Artifactory的,和Maven文档来了解Maven的metadata.xml中以及如何生成和部署。它是有意义的,我可以手动构建一个,但我找不到任何解释具体如何使用Maven-publish插件或artifactory-gradle插件在Gradle中自动生成它的任何内容。我不希望手动更新文件,因为这会挫败自动化工作,并且我不想切换到mvn,因为我已经在Gradle中投入了太多。
这是maven-2-default的plugins-release-local和plugins-snapshot-local的默认布局。我还应该提到它是Artifactory的开源版本,所以我实际上认为它可能是一个需要Pro或更高版本的功能。 – Stuporman 2015-03-03 19:26:32
好吧,拍。我提到的第二个项目收到了一个maven-metadata.xml文件。我将尝试使用groupId来查看是否有所作为。 – Stuporman 2015-03-03 19:31:48
果然,添加groupId会导致Artifactory生成一个maven-metadata.xml文件。 – Stuporman 2015-03-03 21:47:31