回答
此功能不支持,但它在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