我们有一个 maven 多模块项目,我们希望逐渐迁移到 gradle 项目。
对于初学者来说,我只想将几个子项目迁移到gradle,但将它们作为子项目保留到父maven-project构建中。
是否有支持/推荐的方法?
指向插件的指针,或任何如何最好地做到这一点的建议表示赞赏。
不太确定,对于这样的任务有一个简单的解决方案。但是你可以看看gradle-maven-plugin,它允许在Maven中运行Gradle任务。从插件描述:
要使用插件,只需声明插件并将其绑定到 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 模块工件。
为了将构建的工件安装到本地 maven 存储库中,只需将 gradle 的 maven 插件添加到您的 build.gradle
文件中即可。然后,使用 install
任务,而不是@Stanislav的 pom.xml示例中的doSomething
。
将其添加到您尝试构建的 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 以了解更多信息。