我有一個Gradle項目,我需要將它的所有依賴關係轉移到另一個Maven項目中使用。換句話說,我怎樣才能從build.gradle生成(或者可以生成)pom.xml?Gradle build.gradle到Maven pom.xml
回答
最內置的解決方案可能是使用Maven插件中的archiveTask
任務,該任務將在構建目錄中的poms
文件夾中生成pom。 http://www.gradle.org/docs/current/userguide/maven_plugin.html#sec:maven_pom_generation
當使用Gradle's Maven plugin,該安裝任務自動添加到您的任務,並調用它總是會產生一個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
它的文件夾中,你會發現在編譯/勁歌子文件夾中,文件名爲pom-其中將包含依賴關係的default.xml。此外,與POM一起構建的JAR將位於您的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
@a_horse_with_no_name
gradle這個被用Groovy做可以嘗試結束後}項目區增加
build{
plugins{
plugin{
groupId 'org.apache.maven.plugins'
artifactId 'maven-compiler-plugin'
configuration{
source '1.8'
target '1.8'
}
}
}
}
沒有嘗試,狂猜!
謝謝,dilbertside。就像一個魅力,在我的情況下) – WebComer
這隻寫JARs到POM,但不創建一個完整的項目,也包括來自項目的來源。我如何獲得maven插件也可以將源代碼(和文本,資源...)目錄寫入POM中? –
@dilbertside爲我工作。謝謝。 –
當你有沒有gradle這個安裝了「寫gradle這個任務來完成不是很的Userful而是與依賴條件安裝此100MB獸我所做的過濾器轉換gradle這個依賴於Maven依賴:
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的其餘部分。
- 1. 在pom.xml旁邊有build.gradle
- 2. 移植的build.gradle到pom.xml中InstantiationError:org.eclipse.jetty.util.SocketAddressResolver
- 3. Gradle setupBuild不轉換maven pom.xml文件
- 4. 用Gradle生成jar包中的pom.xml
- 5. Maven和pom.xml
- 6. maven config pom.xml
- 7. Gradle build.gradle代碼風格
- 8. Gradle實驗build.gradle配置
- 9. Gradle + Java,多項目build.gradle
- 10. 使用maven的pom.xml進行gradle構建依賴關係?
- 11. Gradle包括Maven
- 12. WSO2示例Maven pom.xml
- 13. maven的pom.xml訂購
- 14. 存檔pom.xml Maven Hibernate
- 15. pom.xml錯誤Maven build
- 16. 如何正確地翻譯maven到gradle
- 17. 從build.gradle調用pom
- 18. 將工作集配置到Maven pom.xml中
- 19. ant build.xml到maven pom.xml實用程序
- 20. 添加maven nexus回購到我的pom.xml
- 21. 從子項目build.gradle訪問根Gradle build.gradle中的變量?
- 22. 從Maven轉移到Gradle
- 23. 使用maven jar解析maven pom.xml
- 24. build.gradle的Gradle任務沒有上市
- 25. 在Scala/Gradle的build.gradle中包含什麼
- 26. 使用Gradle(build.gradle)運行ANT build.xml文件
- 27. build.gradle中的Gradle自定義任務
- 28. gradle`it`屬性在`build.gradle`裏面關閉
- 29. gradle build.gradle依賴 - oracle驅動程序?
- 30. 包含Gradle模塊到Maven項目
這應該是生成POM並在本地安裝工件的「官方」方式,尤其是當您要轉換一堆傳統的基於POM的模塊項目時。 –