我用groovy编写了一个Gradle插件,并使用Gradle构建它。我有一个本地网络Artifactory服务器,我使用Gradle Artifactory插件和Gradle中的maven发布插件发布结果。我有另一个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发布插件或工件工厂- Gradle插件在gradle中自动生成它。我不想手动更新文件,因为这会挫败自动化的努力,而且我也不想切换到mvn,因为我已经在Gradle上投入了那么多。
发布于 2015-03-03 21:54:11
必须将groupId添加到publications部分。一旦实现,maven-metadata.xml文件就会被发布到工件存储库。
publishing {
publications {
mavenJava(MavenPublication) {
groupId = 'com.group'
}
}
}发布于 2020-02-06 01:33:35
我也遇到了同样的问题,结果发现Artifactory存储库不是一个Maven回购,而是一个通用的回购。我花了很长时间才注意到这一点,因为我没有创建回购,而且我假设它是一个Maven repo,而部署/解决其他方面的工作就像预期的那样。
切换到Maven repo之后,在发布时生成maven-metadata.xml。
发布于 2015-03-03 01:39:31
maven-metadata.xml应该由Artifactory来处理。您在Artifactory中的本地存储库布局是什么?
https://stackoverflow.com/questions/28821866
复制相似问题