• 一个操作,轻松迁移 Maven 至 Gradle


    今天我们来讲讲如何将 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.0modelVersion>
        <groupId>cn.javanorthgroupId>
        <artifactId>maven-to-gradleartifactId>
        <version>0.0.1-SNAPSHOTversion>
        <dependencies>
            <dependency>
                <groupId>org.apache.commonsgroupId>
                <artifactId>commons-lang3artifactId>
                <version>3.12.0version>
            dependency>
        dependencies>
    project>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    有了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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    生成的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)
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    settings.gradle

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

    /*
     * This file was generated by the Gradle 'init' task.
     */
    
    rootProject.name = 'maven-to-gradle'
    
    • 1
    • 2
    • 3
    • 4
    • 5
    gradlew 和 gradlew.bat

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

  • 相关阅读:
    java毕业设计成品源码网站基于javaWeb停车场车辆管理系统的设计与实现|车位
    C++,权限修饰符、继承与派生、派生类的构造函数、继承的二义性、基类与派生类的转换
    platform驱动模型再叙
    Spring源码系列(补充):详解ApplicationContext
    管理人员的薪酬制度设计
    为什么更建议企业选择一些老牌的低代码开发平台
    【路径规划】基于遗传算法求解固定的开放式多旅行推销员问题(M-TSP)附matlab代码
    基于Python深度学习的DGA域名检测
    最小二乘法参数拟合
    Sui主网升级至V1.10.1版本
  • 原文地址:https://blog.csdn.net/wbf1013/article/details/128186102