groovy で Gradle プラグインを作成し、Gradle を使用してビルドしました。Gradle Artifactory プラグインと Gradle の maven-publish プラグインを使用して結果を公開するローカル ネットワーク Artifactory サーバーがあります。依存関係としてこのプラグインに依存する別の 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 で自動的に生成する方法を具体的に説明するものは見つかりません。ファイルを手動で更新する必要はありません。自動化の取り組みが無効になるためです。また、すでに Gradle に多くの投資を行っているため、mvn に切り替えたくありません。