1 Star 0 Fork 0

little_lunatic / gradle-demo

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

Gradle 笔记

一、简介

Gradle是一款Google推出的 基于JVM、 通用灵活的 项目构建工具, 支持 Maven,JCenter 多种第三方仓库;支持传递性依赖管理、废弃了繁杂的xml文件,转而使用 简洁的 、 支持多种语言的 build脚本文件 。

二、安装

2.1下载

Gradle 官网 | Installation ,选择完整下载

2.2配置环境变量

GRADLE_HOME : D:\Gradle.8.1.1

path : %GRADLE_HOME%\bin

GRADLE_USER_HOME : D:\maven_repository ,和maven 仓库是一个地址(根据自己本地情况而定)。

2.3修改 maven 下载源

Gradle自带的Maven源地址是国外的,该Maven源在国内的访问速度是很慢的,除非使用了特别的手段。一般情况下,

我们建议使用国内的第三方开放的Maven源或企业内部自建Maven源。

在init.d文件夹创建init.gradle文件 , 复制代码

allprojects {
    repositories {
        mavenLocal()
        maven { name "Alibaba" ; url "https://maven.aliyun.com/repository/public" } 
        maven { name "Bstek" ; url "https://nexus.bsdn.org/content/groups/public/" } 
        mavenCentral()
    }

    buildscript {
        repositories {
            maven { name "Alibaba" ; url 'https://maven.aliyun.com/repository/public' } 
            maven { name "Bstek" ; url 'https://nexus.bsdn.org/content/groups/public/' } 
            maven { name "M2" ; url 'https://plugins.gradle.org/m2/' }
        }
    }
}

三、使用

3.1单模块

和maven项目差不多,只是 pom.xml 换成了 build.gradle

  • build.gradle
plugins {
    //维护springboot版本号,不单独使用,和下面两个插件一起用
    id 'org.springframework.boot' version '2.3.7.RELEASE'
    //进行依赖管理,在引入其它boot依赖时省略版本号、解决jar包冲突问题
    id 'io.spring.dependency-management' version '1.0.10.RELEASE'
    id 'java'
}


group 'com.kk'
version '1.0.0'

repositories {
    mavenCentral()
}

// 每一行就是一个依赖
// 里面的属性 对应 maven <scop> 标签内容
// implementation: 将依赖项包含在项目的编译路径中,同时会传递给依赖该项目的其他模块。
// compileOnly: 将依赖项包含在编译路径中,但不传递给依赖该项目的其他模块。
// runtimeOnly: 依赖项只在运行时可用,不参与编译过程。
// testImplementation: 用于测试相关的依赖项,会将依赖项添加到项目的测试编译路径中,以便在单元测试或集成测试中使用。
// testCompileOnly: 与 compileOnly 类似,但将依赖项仅包含在测试编译路径中,而不会传递给其他测试模块。
// testRuntimeOnly: 依赖项仅在测试运行时可用,不会参与测试编译过程。
dependencies {
    implementation 'org.springframework.boot:spring-boot-starter'
    implementation 'org.springframework.boot:spring-boot-starter-web' //省略版本,原生bom支持,插件management提供testImplementation('org.springframework.boot:spring-boot-starter-test') {
}

test {
    useJUnitPlatform()
}
  • setting.gradle
rootProject.name = 'gradle-demo'

3.2多模块

  • build.gradle------父模块
plugins {
    id 'org.springframework.boot' version '2.3.7.RELEASE'
    id 'io.spring.dependency-management' version '1.0.14.RELEASE'
    id 'java'
}

allprojects {
    group = 'com.kk'
    version = '0.0.1-SNAPSHOT'
}

// 配置子工程共用部分
subprojects {
    // 指定语言
    apply plugin: 'java'
    apply plugin: 'maven-publish'
    apply plugin: 'java-library'

    // 配置项目信息
    group 'com.kk'
    version '1.0.0'

    sourceCompatibility = 1.8
    targetCompatibility = 1.8

    // 配置仓库
    repositories {
        mavenLocal()
        maven { url 'https://maven.aliyun.com/nexus/content/groups/public/' }
        maven { url 'https://maven.aliyun.com/nexus/content/repositories/jcenter' }
        mavenCentral()
    }


//    dependencyManagement {
//        imports {
//            mavenBom "org.springframework.boot:spring-boot-dependencies:${springBootVersion}"
//            mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
//        }
//    }


    dependencies {
        implementation 'org.projectlombok:lombok'
        annotationProcessor 'org.projectlombok:lombok'
   
 }

    test {
        enabled false
    }
}
  • build.gradle------子模块1
plugins {
    id 'org.springframework.boot'
    id 'io.spring.dependency-management'
}

repositories {
}


dependencies {
}
  • build.gradle------子模块2
plugins {
    id 'org.springframework.boot'
    id 'io.spring.dependency-management' 
}

repositories {
    mavenLocal()
}

dependencies {
    // 依赖其他子模块
    // implementation:依赖只作用于当前的module而不对外公开;
    // implementation project(path: ':model')

    // api依赖对外公开,而不是只作用于当前module.依赖id 'java-library'
    api project(path: ':model')
    implementation 'org.springframework.boot:spring-boot-starter'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
    implementation 'org.springframework.boot:spring-boot-starter-web'

}

test {
    useJUnitPlatform()
}
  • setting.gradle
rootProject.name = 'gradle-demo'
include 'controller'
include 'model'

空文件

简介

gradle 多模块配置及简单使用. 展开 收起
Java
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/little_lunatic/gradle-demo.git
git@gitee.com:little_lunatic/gradle-demo.git
little_lunatic
gradle-demo
gradle-demo
master

搜索帮助

344bd9b3 5694891 D2dac590 5694891