Gradleプロジェクトがあり、その依存関係をすべて転送して別のMavenプロジェクトで使用する必要があります。言い換えれば、build.gradleからpom.xmlをどのように生成(または生成)できますか?
最も組み込まれているソリューションは、MavenプラグインのarchiveTask
タスクを使用することです。これにより、ビルドディレクトリのpoms
フォルダーにpomが生成されます。 http://www.gradle.org/docs/current/userguide/maven_plugin.html#sec:maven_pom_generation
GradleのMavenプラグイン を使用すると、installタスクがタスクに自動的に追加され、それを呼び出すと常にPOMファイルが生成されます。
したがって、build.gradleファイルは次のようになります。
apply plugin: 'Java'
apply plugin: 'maven'
group = 'myGroup'
// artifactId is taken by default, from folder name
version = '0.1-SNAPSHOT'
dependencies {
compile 'commons-lang:commons-lang:2.3'
}
そのフォルダーでgradle install
を呼び出すことができます。build/pomsサブフォルダーにあるファイルpom-default.xml依存関係が含まれます。また、ビルドされたJARとPOMはMavenローカルリポジトリにあります。
ローカルリポジトリに何もインストールしたくないので、代わりにドキュメントを読んでから次のようにしました。 build.gradleに追加します
apply plugin: 'maven'
group = 'com.company.root'
// artifactId is taken by default, from folder name
version = '0.0.1-SNAPSHOT'
task writeNewPom << {
pom {
project {
inceptionYear '2014'
licenses {
license {
name 'The Apache Software License, Version 2.0'
url 'http://www.Apache.org/licenses/LICENSE-2.0.txt'
distribution 'repo'
}
}
}
}.writeTo("pom.xml")
}
実行するにはgradle writeNewPom
@名のない馬
groovyで作成されたgradleは、終了後に追加しようとすることができます}プロジェクトブロック
build{
plugins{
plugin{
groupId 'org.Apache.maven.plugins'
artifactId 'maven-compiler-plugin'
configuration{
source '1.8'
target '1.8'
}
}
}
}
試みなかった、ワイルドな推測!
Gradleがインストールされていない場合、「これを行うgradleタスクを作成する」はあまり使いやすいものではありません。
cat build.gradle\
| awk '{$1=$1};1'\
| grep -i "compile "\
| sed -e "s/^compile //Ig" -e "s/^testCompile //Ig"\
| sed -e "s/\/\/.*//g"\
| sed -e "s/files(.*//g"\
| grep -v ^$\
| tr -d "'"\
| sed -e "s/\([-_[:alnum:]\.]*\):\([-_[:alnum:]\.]*\):\([-+_[:alnum:]\.]*\)/<dependency>\n\t<groupId>\1<\/groupId>\n\t<artifactId>\2<\/artifactId>\n\t<version>\3<\/version>\n<\/dependency>/g"
これは変換します
compile 'org.slf4j:slf4j-api:1.7.+'
compile 'ch.qos.logback:logback-classic:1.1.+'
compile 'commons-cli:commons-cli:1.3'
に
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.+</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.+</version>
</dependency>
<dependency>
<groupId>commons-cli</groupId>
<artifactId>commons-cli</artifactId>
<version>1.3</version>
</dependency>
残りのpom.xmlは手動で作成する必要があります。