0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何将Maven项目转换为Gradle项目

科技绿洲 来源:Java技术指北 作者:Java技术指北 2023-09-25 15:48 次阅读

今天我们来讲讲如何将 Maven 项目转换为 Gradle 项目。这个过程还是蛮简单的,下面通过一个例子来说明怎么转换。

Gradle 设置

如果没有安装 gradle, 我们可以从 Gradle 官网下载最新的版本,根据gradle官方的文档安装即可。可以看我们之前的文章,这里不过多的描述。

Maven pom

假设我们有这样一个 maven项目,pom.xml 文件如下:

< project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" >
    < modelVersion >4.0.0< /modelVersion >
    < groupId >cn.javanorth< /groupId >
    < artifactId >maven-to-gradle< /artifactId >
    < version >0.0.1-SNAPSHOT< /version >
    < dependencies >
        < dependency >
            < groupId >org.apache.commons< /groupId >
            < artifactId >commons-lang3< /artifactId >
            < version >3.12.0< /version >
        < /dependency >
    < /dependencies >
< /project >

有了maven项目,也安装了gradle,那我们就可以动手转换到gradle了。

执行 gadle init

我们在终端跳转到Maven项目的根目录,就是包含pom.xml 文件的目录, 然后执行 gradle init 命令。从终端响应结果从输入yes 并按回车健。

$ gradle init

Found a Maven build. Generate a Gradle build from this? (default: yes) [yes, no] yes


> Task :init
Maven to Gradle conversion is an incubating feature.
Get more help with your project: https://docs.gradle.org/7.3/userguide/migrating_from_maven.html

BUILD SUCCESSFUL in 3s
2 actionable tasks: 2 executed

生成的Gradle构建文件

现在让我们重新检查一下我们项目的根目录的内容。我们应该在根目录中看到一些新文件,下面我们展开讲讲这几个文件的用处。

build.gradle

build.gradle 文件是Gradle构建过程的核心组件,它直接等同于Maven构建的pom.xml文件。我们可以看到pom.xml中的依赖属性,如groupId、version、dependencies,会有一些对应的gradle属性与之关联。

另外还有sourceCompatibility属性,它是用于告诉我们在编译Java时要使用哪个Java版本。

插件部分, java是为构建任何类型的Java项目提供支持,而 maven-publish 是为发布项目到Maven兼容的仓库提供支持。

/*
 * This file was generated by the Gradle 'init' task.
 */

plugins {
    id 'java'
    id 'maven-publish'
}

repositories {
    mavenLocal()
    maven {
        url = uri('https://repo.maven.apache.org/maven2/')
    }
}

dependencies {
    implementation 'org.apache.commons:commons-lang3:3.12.0'
}

group = 'cn.javanorth'
version = '0.0.1-SNAPSHOT'
description = 'maven-to-gradle'
java.sourceCompatibility = JavaVersion.VERSION_1_8

publishing {
    publications {
        maven(MavenPublication) {
            from(components.java)
        }
    }
}

settings.gradle

Gradle在初始化过程中是通过使用settings.gradle文件来配置并确定哪些项目被包含在此次构建中。

/*
 * This file was generated by the Gradle 'init' task.
 */

rootProject.name = 'maven-to-gradle'

gradlew 和 gradlew.bat

Gradle还生成了两个启动脚本,gradlew.bat 用于Windows,而gradlew用于Unix和Linux的环境,这些脚本也可以在没有设置Gradle的机器上运行项目,它会自动下载gradle wrapper来运行。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 终端
    +关注

    关注

    1

    文章

    998

    浏览量

    29599
  • 文件
    +关注

    关注

    1

    文章

    540

    浏览量

    24402
  • maven
    +关注

    关注

    0

    文章

    28

    浏览量

    3651
  • gradle
    +关注

    关注

    0

    文章

    26

    浏览量

    662
收藏 人收藏

    评论

    相关推荐

    Gradle构建的多模块Spring Boot项目

    0. 前言 相比起 Maven 的 XML 配置方式,Gradle 提供了一套简明的 DSL 用于构建Java 项目,使我们就像编写程序一样编写项目构建脚本。 本文将从无到有创建一个用
    的头像 发表于 09-25 14:46 1194次阅读
    <b class='flag-5'>Gradle</b>构建的多模块Spring Boot<b class='flag-5'>项目</b>

    如何将二维数组转换为图像

    如何将二维数组转换为图像
    发表于 03-10 11:15

    求教如何将Labview的程序转换为C语言啊

    求教如何将Labview的程序转换为C语言啊,申请软件著作权要用
    发表于 12-24 13:04

    如何将秒数转换为时间字符串?

    请问如何将数值型秒数转换为时间字符串?比如3600s转换为01:00:00
    发表于 03-30 13:15

    Android Studio与Gradle深入

    Android Studio 相关功能介绍  文件夹组织视图  最常用的有 Project 和 Android 视图,前者按照项目文件树进行组织,后者是以 Gradle 构建文件作为核心进行组织
    发表于 08-31 17:58

    怎么hex文件转换为MPLAB项目

    你好,我有许多PIC程序手工开发(手工制作,字节后字节)。那么我只有这些程序的十六进制文件。我如何将这些十六进制文件转换成MPLAB IDE项目?对于每个十六进制文件,有可能“重建”一个源文件吗?
    发表于 10-10 10:12

    怎么Vivado项目转换为ISE项目

    我想知道是否可以Vivado项目转换为ISE项目,以便将其导入HDL Designer。 HDL设计师确实有Vivado流,但不是Vivado导入。或者,如果有人知道
    发表于 12-20 11:24

    verilog UDP无法转换为项目

    我想使用用户定义基元(UDP)来构建一个项目二进制转换为格雷码,但UDP似乎无法转换为项目,我该怎么办?binary_to_gray_u
    发表于 03-07 13:48

    Linux部署maven(war包)web 项目

    war4.启动tomcat5.查看tomcat运行状态6.浏览器访问maven项目二、实现(部署maven)1.Eclipse导出war包Eclipse选中项目,右键export导出为
    发表于 07-04 06:40

    如何将传统ANN转换为SNN?

    SNN和ANN的区别是什么?如何将传统ANN转换为SNN?
    发表于 09-28 06:15

    有什么方法可以IAR项目转换为STM32CubeIde项目吗?

    以读取 C2 85 3A 的内存 ID这些问题是由链接器文件引起的还是我应该更改项目中的其他任何内容?有什么方法可以 IAR 项目转换为 STM32CubeIde
    发表于 12-06 09:12

    如何将示例项目之一转换为CubeIDE工作区中的工作项目

    我正在尝试学习 STM32WB 入门系列,但我无法正确导入任何示例项目如何将示例项目之一转换为 CubeIDE 工作区中的工作项目
    发表于 12-26 08:31

    如何将MCUXPresso项目转换为CMAKE?

    你好。 我在 MCUXPresso 中有一个项目,我想转换为 CMAKE。 有人对此有任何入门吗? 我知道存在不同的 SDK 包。 我想过渡到使用 MS Visual Studio/Code 嵌入式调试工具套件。
    发表于 04-23 08:34

    如何将电阻转换为颜色?

    我创建了一个电阻程序来计算颜色的电阻,但我不确定如何将电阻转换为颜色。你能帮我把这个放在一起吗? 例如,如果我输入 100 欧姆和 5% 的公差,则会出现棕色、黑色、棕色和金色。
    发表于 05-12 08:57

    如何理解Maven拉包原理,搞定Maven构建项目

    依赖是我们在使用 Maven 构建项目时最常使用的功能,通过依赖标签,我们可以直接从Maven仓库中引入对应的Jar包,无需手动再将Jar添加到目录下了,可谓是十分方便,不过我们除了使用,还需要考虑多模块下依赖之间的关系。
    发表于 05-25 09:50 360次阅读
    如何理解<b class='flag-5'>Maven</b>拉包原理,搞定<b class='flag-5'>Maven</b>构建<b class='flag-5'>项目</b>