Gradle、Maven项目相互转换

 发表于 2017-08-21 |  更新于: 2018-03-18 |  阅读次数: 920

 字数统计: 658

在开发Android项目的时候,使用的是Gradle构建工具,喜欢它的灵活和方便,在转向Java后端开发的时候更多时候使用的是Maven构建工具,然而看着漫天的尖括号,心里实在是难受。虽然只是一个构建工具,本着折腾的心,我还是更认可和看好Gradle。然而很多时候你的队友并没有习惯去使用或者快速熟悉Gradle构建工具,那么这个时候就需要将Gradle项目转换为Maven项目了,或者将Maven项目转换为Gradle项目了。

安装Gradle/Maven

首先是安装构建工具,这个没啥好说的。

Windows

打开Powershell或者Cmder执行以下命令完成安装:

1
2
choco install gradle
choco install maven

choco为windows下的一款包管理工具,可以方便安装管理配置一些常见的软件包,如果你没有安装choco的话,请移步:https://chocolatey.org/

Mac

打开Terminal,执行以下命令安装:

1
2
brew install gradle
brew install maven

Maven to Gradle

需要特别说明的是,GradleMaven的支持是比较完善的,因此,转换也是非常的简单,在pom.xml文件所在的目录下执行:

1
2
gradle init     # 根据pom.xml内容生成对应的gradle配置
gradle build # 开启gradle构建

Gradle to Maven

Gradle项目转Maven项目需要借助一个Gradle插件,在项目的modulebuild.gradle文件中加入以下配置即可:

1
apply plugin: 'maven'

通过双击Idea的Gradle Tasks GUI:

或者执行命令来完成转换:

1
gradle install

完成之后,将会在当前Module项目的build目录下的poms文件夹下生成pom-default.xml,将其拷贝到项目的根目录下即可。


通过实际测试,这样的生成的pom-default.xml文件是不能用于直接maven构建的,因为生成的pom-default.xml文件中的groupId还需要我们手动指定下。这样显然是不清真的,于是我们可以在build.gradle文件中将其事先定义好,这样生成的pom文件就不用我们再手动更改了:

然而这样我们还是觉得麻烦,毕竟需要手动复制到项目根目录,再重新命名。我们还可以通过Hook Gradle中Maven插件的installTask来完成自动的复制和命名,编辑build.gradle:

1
2
3
4
5
6
task convert2Maven {
doLast {
file("$buildDir/poms/pom-default.xml").renameTo(file("$rootDir/pom.xml"))
}
}
install.dependsOn(convert2Maven)

此时,再执行gradle install这个task就可以看到gradle已经自动为我们在项目的根目录下生成好了pom.xml文件啦。

 
 
  • 文章目录
  • 站点概览
 
© 2018  夏末 |  Site words total count: 43.7k
主题 — NexT.Muse
 3%

【全文转载】Gradle、Maven项目相互转换的更多相关文章

  1. 转载:Maven项目mybatis Invalid bound statement (not found)解决方法

    在mapper代理的开发中,程序员需要遵守一些规范,mybatis才能实现mapper接口的代理对象. 它的规范如下: mapper.xml的namespace要写所映射接口的全称类名. mapper ...

  2. IDEA Maven项目 pom.xml 找不到 Dependency 依赖

    转载: IDEA Maven项目 pom.xml 找不到 Dependency 依赖 如果你的pom.xml中使用了dependencyManagement管理依赖并且添加了你本地仓库中不存在的依赖可 ...

  3. gradle项目对比maven项目的目录架构以及对gradle wrapper的理解

    转载请注明出处: 1.使用 idea 搭建 gradle项目 注意 type 选择 gradle 以及 language 选择 grooy                       搭建后的项目架构 ...

  4. gradle项目与maven项目相互转化

    gradle这几年发展迅猛,github越来越多的项目都开始采用gradle来构建了,但是并不是所有人都对gradle很熟悉,下面的方法可以把gradle转成maven项目,前提gradle项目目录结 ...

  5. gradle与maven项目相互转化

    gradle这几年发展迅猛,github越来越多的项目都开始采用gradle来构建了,但是并不是所有人都对gradle很熟悉,下面的方法可以把gradle转成maven项目,前提gradle项目目录结 ...

  6. gradle项目与maven项目相互转化(转)

    根据build.gradle和setting.gradle文件生成idea项目: gradle idea gradle这几年发展迅猛,github越来越多的项目都开始采用gradle来构建了,但是并不 ...

  7. gradle项目与maven项目互转

    maven to gradle 在maven项目根目录下执行命令: gradle init --type pom 当然你得先下载Gradle,配置完环境变量. gradle to maven grad ...

  8. maven 项目转 gradle

    打开maven 项目的根目录,CMD 执行命令:gradle init --type pom maven项目就变成了gradle项目

  9. 使用Gradle发布项目到JCenter仓库 (转载)

    原文:使用Gradle发布项目到JCenter仓库 这篇文章介绍通过Gradle把开源项目发布到公共仓库JCenter中,方便你我他的事情,我们都是很懒的嘛.JCenter现在是Android Stu ...

随机推荐

  1. HDU 6336 Matrix from Arrays (杭电多校4E)

    遇事不决先打表. 然后会发现(个屁)大的矩形是由一个2L*2L的矩形重复出现组成的然后我们就可以这个矩形分成四个点到(0, 0)点的矩形,这样问题就变成了求四个到顶点(0, 0)的矩形的面积,然后就先 ...

  2. linux(fedora) 第三课

    树形打印所有进程名:pstree pstree | grep pstree -A2 -B2(查看pstree前后两行) NI的值[-20,20) nice(改变NI的值):改变程序优先级 nice - ...

  3. 牛客网Wannafly挑战赛25A 因子(数论 素因子分解)

    链接:https://www.nowcoder.com/acm/contest/197/A来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言5242 ...

  4. Ocean的游戏(前缀和)

    题目链接:http://oj.ismdeep.com/contest/Problem?id=1284&pid=1 B: Ocean的游戏 Time Limit: 1 s      Memory ...

  5. This license xxx has been cancelled 解决

    上节回顾:JetBrains全家桶破解思路 hosts屏蔽一下即可,Linux是:/etc/hosts 0.0.0.0 account.jetbrains.com 重新输入Code即可,最后补一个地址 ...

  6. kafaka quickstart

    http://kafka.apache.org/ http://kafka.apache.org/downloads cd /root/kafuka/kafka_2.12-0.11.0.0 nohup ...

  7. Spring MVC 架构的java web工程如何添加登录过滤器

    发布到外网的web工程必须添加登录过滤器来阻挡一些非法的请求,即只有登录的用户才能对web工程进行请求,否则无论请求什么资源都需要调整到登录页面进行登录操作.这时就需要用到过滤器,其实非常简单,只需要 ...

  8. python 类的介绍

    使用面向对象的优点: 1.能够更好的设计软件架构 2.维护软件模块 3.易于架构和组件的重用 类的定义: 构造函数:初始化用,写不写都可以,默认为空 类属性:属于类的对象 方法属性:不属于类的对象 私 ...

  9. DB9 ------ 接口定义

    下图是母座和公座的接口定义: 特别提醒:以上是公座和母座的接口定义,如果是串口线,RXD就变成TXD,以此类推.

  10. PHP三元运算符

    :条件 ? 结果1 : 结果2     <?php$a=10; $b=20;$c=$a>$b?($a-$b):($a+$b);//说明:如果变量a大于变量b则执行问号后面的,否则就执行:冒 ...