回答
此功能不支持,但它在development roadmap。每隔一段時間檢查roadmap dashboard以查看狀態是否改變。
我不知道允許構建Maven插件的第三方Gradle插件。一種可能性是調用Maven完成部分工作(特別是元數據生成)。必要的POM可以在飛行中創建。另一種可能性是將元數據提交給源代碼管理並手動更新(可能需要時運行Maven)。最後但並非最不重要的是,您可以編寫一些代碼來執行Gradle方面的元數據生成,可能會重用一些Maven代碼。
太糟糕了,這是不計劃的。讓我們看看是否有一個好的解決方法... –
Here's something是爲我工作:
- 編寫插件的源後生成項目的POM:
"install.repositories.mavenInstaller.pom.writeTo('pom.xml')"
- 補丁POM生成並提供插件的座標和正確的目標目錄
- 運行
"mvn org.apache.maven.plugins:maven-plugin-plugin:3.2:descriptor"
這種方式"build/classes/main/META-INF/maven/plugin.xml"
被創建,然後由正確包裝任務,這是一個jar文件成爲Maven插件AFAIK所需的全部功能。另外,我相信,"maven-plugin-annotations"應該用在插件中。
task pluginDescriptor(type: Exec) {
commandLine 'mvn', '-e', '-B', 'org.apache.maven.plugins:maven-plugin-plugin:3.2:descriptor'
doFirst {
final File pom = project.file('pom.xml')
install.repositories.mavenInstaller.pom.writeTo(pom)
assert pom.file, "[$pom.canonicalPath] was not created"
pom.text = pom.text.
replace('<groupId>unknown</groupId>', "<groupId>${project.group}</groupId>").
replace('<artifactId>empty-project</artifactId>', "<artifactId>${project.name}</artifactId>").
replace('<version>0</version>', """
|<version>${version}</version>
| <packaging>maven-plugin</packaging>
| <build>
| <directory>\${project.basedir}/build</directory>
| <outputDirectory>\${project.build.directory}/classes/main</outputDirectory>
| </build>
|""".stripMargin().trim())
}
doLast {
final pluginDescriptor = new File((File) project.compileGroovy.destinationDir, 'META-INF/maven/plugin.xml')
assert pluginDescriptor.file, "[$pluginDescriptor.canonicalPath] was not created"
println "Plugin descriptor file:$pluginDescriptor.canonicalPath is created successfully"
}
}
project.compileGroovy.doLast{ pluginDescriptor.execute() }
非常感謝。基於此,我提出了不需要替換的以下版本:https://gist.github.com/fikovnik/ffc1fed1867bc7fa679aaf8e48f00c21 – fikovnik
- 1. Gradle構建 - Maven Modello
- 2. 使用Gradle構建Eclipse插件
- 3. 使用Gradle構建IntelliJ插件
- 4. Maven插件構建
- 5. 使用gradle構建時讀取maven settings.xml?
- 6. 使用Gradle構建Maven項目
- 7. 轉換maven插件exec-maven插件gradle
- 8. 如何使用maven構建Eclipse插件?
- 9. 使用Wuff(Gradle插件)構建Eclipse插件
- 10. Maven的,錯誤時使用Maven構建具組件插件
- 11. Maven 2插件,構建+ surefire
- 12. 自動構建Maven插件
- 13. 構建IntelliJ插件的Maven插件
- 14. gradle to maven插件轉換
- 15. groovy/gradle插件有條件地構建
- 16. 我可以使用Gradle maven插件創建Maven POM-only(BOM)構建以部署到Nexus嗎?
- 17. Gradle:在自定義獨立插件中使用'maven-publish'插件
- 18. Gradle使用maven插件管理生成的POM上的插件
- 19. Maven構建插件和竹子搭建
- 20. 使用Maven構建
- 21. 構建使用Maven
- 22. 如何使用gradle實驗性插件構建NDK模塊?
- 23. 使用分發插件構建項目後運行gradle任務
- 24. 使用deployGate gradle插件構建Android Studio項目
- 25. Maven發佈插件使用構建版本命名文件
- 26. 使用gradle構建dex文件
- 27. 使用gradle構建ServiceLoader文件:howto?
- 28. 使用gradle複製構建工件
- 29. 使用gradle構建jar
- 30. Android - 使用NDK構建Gradle
我們的重點是支持Gradle中的Maven插件的_reuse_,而不是支持_build_它們。 –
我明白了。我想我誤解了這個問題。 –
路線圖儀表板鏈接不再有效 – Matthew