我们有一个maven多模块项目,我们希望逐步迁移到gradle项目。
对于初学者,我想只将几个子项目迁移到gradle,但将它们作为子项目保存到父maven项目构建中。
是否有支持/推荐的方式?
指向插件的指示,或任何建议如何最好地做到这一点。
答案 0 :(得分:2)
不确定,对于这样的任务有一个简单的解决方案。但您可以查看允许在Maven中运行Gradle任务的gradle-maven-plugin。来自插件说明:
要使用该插件,只需声明插件并将其绑定到maven即可 您选择的生命周期阶段:
<plugin> <groupId>org.fortasoft</groupId> <artifactId>gradle-maven-plugin</artifactId> <version>1.0.8</version> <configuration> <tasks> <!-- this would effectively call "gradle doSomething" --> <task>doSomething</task> </tasks> </configuration> <executions> <execution> <!-- You can bind this to any phase you like --> <phase>compile</phase> <goals> <!-- goal must be "invoke" --> <goal>invoke</goal> </goals> </execution> </executions> </plugin>
现在当你运行maven时,将调用gradle并执行 build.gradle中定义的“doSomething”任务。
显然,您可以根据自己的需要更改任务。
在此示例中,gradle调用将在maven期间发生 “编译”阶段,但这可以通过更改来轻松更改 元素价值。
不幸的是不能说,如何在不将其发布到某个本地存储库的情况下共享Gradle模块工件。
答案 1 :(得分:2)
要将构建的工件安装到本地maven存储库,只需将maven plugin for gradle添加到build.gradle
文件即可。然后,在@Stanislav的pom.xml示例中使用install
任务而不是doSomething
。
答案 2 :(得分:0)
将此添加到您要构建的gradle项目中,
uploadArchives {
repositories {
mavenLocal()
}
}
然后调用gradle build publishToMavenLocal
,这将构建项目/模块并将其推送到本地Maven存储库(.m2)以及生成的pom文件。然后,您可以将其用作pom文件的先前常规maven模块。
从https://proandroiddev.com/tip-work-with-third-party-projects-locally-with-gradle-961d6c9efb02阅读以了解更多信息。