2016-11-01 132 views
6

我们有一个使用Maven作为构建系统的大型项目。我们决定在将来的项目中,我们将使用Gradle作为更方便的工具,但我们也希望将Gradle用于我们的遗留项目。包含Gradle模块到Maven项目

我认为一次从Maven迁移到Gradle会非常痛苦,因为我们在POM文件中有很多代码(我们有非常重的构建逻辑)。我知道,Gradle有自动迁移工具(gradle init),但它不能正常工作(我认为这个工具是用于没有特定构建逻辑的小型Maven项目)。

所以,这里是一个问题:我可以包括Gradle模块到Maven项目迁移与小步骤?也许有Maven插件,允许将build.gradle视为pom.xml文件?

回答

6

有一个gradle-maven-plugin它允许您从Maven内运行Gradle任务。从插件描述:

使用插件,只需声明插件,并将其绑定到您选择的行家 生命周期阶段:

<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存储库,以使其可用于您的Maven项目。

3

您可能会发现我的gradle-maven-share插件很有用。它旨在通过与gradle共享maven配置来帮助从maven迁移到gradle。