`
wx1569488408
  • 浏览: 75057 次
文章分类
社区版块
存档分类
最新评论

Gradle构建SpringBoot多模块项目

 
阅读更多

Gradle官方介绍是Build Anything, Automate Everything,Deliver Faster,即构建任何项目,自动化,构建快。

​Gradle VS Maven

这是官方跟Maven构建的比较视频

640?wx_fmt=gif

可以明显看到Gradle速度快,显示内容也比较清爽

项目实例

IDEA创建初始项目

so easy..

640?wx_fmt=pngcopy 两个项目,目录结构是这样,这里用1-5标识Gradle配置文件

640?wx_fmt=png

配置文件详解

1. settings.gradle

/**
 * rootProject.name 项目名称
 * include 模块名称
 */
rootProject.name = 'micro-service-framework'
include 'framework-base'
include 'framework-web'
include 'framework-redis'

2. build.gradle
这个相当于maven中的父maven配置

buildscript {
    ext {
        //spring boot 版本
        bootVersion = '2.0.6.RELEASE'
    }

    //私服地址,这个地址适用于gradle自身,比如删除,下面的springboot插件就会找不到
    repositories {
        maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
    }

    //springboot gradle插件配置
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${bootVersion}")
    }
}


allprojects {
    //导入使用的插件
    apply plugin: 'java'
    apply plugin: 'maven'
    //如果导入该插件,你需要指定main class,否则不能打包
    //apply plugin: 'org.springframework.boot'
    apply plugin: 'io.spring.dependency-management'
    //这个插件用于发布jar包到私服
    apply plugin: 'maven-publish'

    //jdk编译版本
    sourceCompatibility = 1.8

    //jar包的group ,version配置
    group 'net.178le.micro'
    version '0.0.1-SNAPSHOT'

    //私服地址,
    repositories {
        maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
    }

    /**
     * 导入了springboot,spring cloud的pom文件,能够免去自己管理版本
     * PS: 在Spring官网指导上面有另外一种配置,那种配置需要配置main class,一会说明
     */
    dependencyManagement {
        imports {
            mavenBom "org.springframework.boot:spring-boot-starter-parent:${bootVersion}"
            mavenBom "org.springframework.cloud:spring-cloud-dependencies:Finchley.SR2"
        }
    }


    //私服发布配置
    publishing {
        publications {
            maven(MavenPublication) {
                //指定group/artifact/version信息,可以不填。默认使用项目group/name/version作为groupId/artifactId/version
                groupId = project.group
                artifactId = project.name
                version = project.version
                //如果是war包填写components.web,如果是jar包填写components.java
                from components.java

                //配置上传源码
                artifact sourceJar {
                    classifier "src"
                }

            }
        }
        repositories {
            maven {
                def releasesUrl = "http://你的私服ip:8081/repository/maven-releases/"
                def snapshotsUrl = "http://你的私服ip:8081/repository/maven-snapshots/"
                url = version.endsWith('SNAPSHOT') ? snapshotsUrl : releasesUrl
                credentials {
                    username = 'admin'
                    password = 'admin123'
                }
            }
        }
    }

}

//这里的配置对子项目生效
subprojects {

    dependencies {
        testCompile("org.springframework.boot:spring-boot-starter-test")
        compile("com.google.guava:guava:28.0-jre")
    }
}

//打包源码
task sourceJar(type: Jar) {
    from sourceSets.main.allJava
}

maven publish使用
在task -> publishing 中有如下几个命令

640?wx_fmt=jpeg我认为使用这两个命令就足够了
publishMavenPublicationToMavenLocal 发布项目到本地仓库
publishMavenPublicationToMavenRepository 发布项目到私服

PS:使用apply plugin: 'org.springframework.boot' build必须要指定main class

23:26:17: Executing task 'build'...

> Task :framework-base:compileJava NO-SOURCE
> Task :framework-base:processResources NO-SOURCE
> Task :framework-base:classes UP-TO-DATE
> Task :framework-base:jar SKIPPED
> Task :framework-redis:compileJava UP-TO-DATE
> Task :framework-redis:processResources NO-SOURCE
> Task :framework-redis:classes UP-TO-DATE
> Task :framework-redis:jar SKIPPED
> Task :framework-web:compileJava UP-TO-DATE
> Task :framework-web:processResources NO-SOURCE
> Task :framework-web:classes UP-TO-DATE
> Task :framework-web:bootJar FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':framework-web:bootJar'.
> Main class name has not been configured and it could not be resolved

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

Deprecated Gradle features were used in this build, making it incompatible with Gradle 5.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/4.10.3/userguide/command_line_interface.html#sec:command_line_warnings

BUILD FAILED in 1s
3 actionable tasks: 1 executed, 2 up-to-date
Main class name has not been configured and it could not be resolved
23:26:18: Task execution finished 'build'.

framework-web 项目 3. build.gradle

dependencies {
    //依赖framework-redis项目
    compile project(':framework-redis')

    //不需要写版本
    compile('org.springframework.boot:spring-boot-starter-web')
    //不需要写版本
    compile('org.springframework.cloud:spring-cloud-starter-openfeign')

}

framework-redis 项目 4. build.gradle

dependencies {
    //依赖framework-base
    compile project(':framework-base')
    compile('org.springframework.boot:spring-boot-starter-data-redis')
}

framework-base 5. build.gradle

//做为演示没有引入任何jar包
dependencies {
}

640?wx_fmt=png

转载于:https://my.oschina.net/itsaysay/blog/3095846

分享到:
评论

相关推荐

    使用SpringBoot与Gradle、搭建多模块项目

    使用springboot+kotlin+ktor+gradle搭建多模块项目例子,该项目整合MybatisPlus做为数据库框架,可搭配文章‘SpringBoot整合Ktor2与MybatisPlus’ 与 ‘ktor 2.0的使用教程之实现log日志和jwt封装与异常处理’一起...

    Gradle构建springboot微服务框架

    gradle构建多模块的微服务架构,配置超简单简洁,基于springboot、shardingsphere、mybatisplus、HikariCp构建的web微服务。可以直接运行,在此基础上构建多模块聚合形式的业务系统。

    idea spring boot 多模块项目创建

    创建Spring Boot多模块项目的第一步是在Idea中创建一个新的Maven或Gradle项目。以Maven为例,我们需要在`pom.xml`中定义父项目(Parent Project)和子项目(Child Projects)。父项目主要负责管理所有子项目的版本...

    [SpringBoot学习]-IDEA创建Gradle多Module结构的SpringBoot项目代码

    7. **持续集成和部署**:配置Gradle构建脚本,以便与CI/CD工具如Jenkins、GitLab CI/CD等配合,实现自动化构建、测试和部署。 8. **版本控制**:将整个项目放入版本控制系统(如Git),便于团队协作和版本管理。 ...

    Gradle创建的SpringBoot小项目

    在这里选择Gradle作为构建工具,IDEA会自动为你生成基本的Gradle构建脚本`build.gradle`。 5. **配置Gradle** `build.gradle`文件是Gradle的配置文件,其中包含了项目的构建规则。Spring Boot Starter会帮你配置...

    ide搭建的gradle构建的springboot2源代码

    在这里,我们有一个使用IDEA搭建的、基于Gradle构建系统和Spring Boot 2的项目,其中包含了增删改查的基本示例。 首先,让我们深入了解一下Spring Boot 2的关键特性: 1. 自动配置:Spring Boot通过“@...

    springboot+gradle 构建多模块项目的步骤

    主要介绍了springboot+gradle 构建多模块项目的步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    Springboot-Mybatis-Gradle:Gradle 构建SpringBoot项目,使用Mybatis来持久化,集成PageHelper分页插件,实现热部署

    在本项目中,我们主要探讨的是如何使用Gradle构建一个基于SpringBoot的应用,并结合Mybatis进行数据持久化处理,同时引入PageHelper插件以实现高效便捷的分页功能。此外,我们还将关注如何配置热部署,以便在开发...

    Gradle+SpringBoot+SpringMVC+Mybatis+Jersey+Mybatis+MySQL项目整合实例(全注解实例)

    它使用Groovy或Kotlin作为构建脚本语言,提供了灵活的依赖管理和插件系统,使得项目构建更加模块化和可定制化。在本项目中,Gradle用于管理项目依赖、执行构建任务和打包应用程序。 接下来是SpringBoot,它是Spring...

    SpringBoot多模块项目设计与实现demo

    本教程将深入探讨如何设计和实现一个基于SpringBoot的多模块项目。 一、SpringBoot基础知识 1. SpringBoot的核心特性包括自动配置、起步依赖和内嵌Web服务器。自动配置是SpringBoot的一大亮点,它通过`@SpringBoot...

    基于SpringBoot的Gradle工程

    Gradle支持多项目构建,可以通过以下步骤创建多模块SpringBoot项目: 1. **创建主项目** 主项目通常包含所有子项目的配置信息,`settings.gradle`文件列出所有子模块: ```groovy include 'module1', 'module2' ...

    springboot_gradle.zip

    在新项目中,我们通常会使用Spring Initializr来初始化一个带有Gradle构建的SpringBoot项目。Gradle的构建脚本(build.gradle)将定义项目依赖,如SpringBoot的starter依赖、应用的自定义模块等。 接下来,"2.配置...

    springBoot多模块

    7. **Maven或Gradle**: 为了管理和构建多模块项目,开发者通常会使用Maven或Gradle。这两个工具可以帮助管理项目依赖、构建工件并自动化构建流程。通过它们的多模块配置,可以确保所有子模块协同工作。 8. **...

    基于gradle构建的项目

    **基于Gradle构建的项目详解** Gradle是一种现代的、强大的构建自动化工具,它以其灵活性、性能优化和高度可扩展性赢得了开发者的喜爱。相比于传统的Maven,Gradle提供了更丰富的配置选项,允许开发者根据项目的...

    SpringBoot 多模块 Serivce 层单元测试

    在Spring Boot应用中,多模块架构常常用于组织复杂的项目结构,将不同的功能模块进行分离,以便于管理和维护。Service层是业务逻辑的核心,对其进行单元测试是确保代码质量、提高开发效率的重要步骤。本文将深入探讨...

    SpringBoot多模块例子-v1.0(不建议下载)

    在本示例"SpringBoot多模块例子-v1.0"中,我们看到的是一个采用SpringBoot构建的多模块项目,旨在提供一种有序、可维护的开发方式。 首先,我们要理解什么是多模块项目。在大型项目中,为了提高代码的可读性、可...

    springboot基于gradle整合vue

    2. **build.gradle**:这是Gradle构建脚本,定义了项目的依赖、插件、任务等。对于`server`项目,我们需要添加Spring Boot的相关依赖,如`spring-boot-starter-web`。对于`ui`项目,我们需要添加处理Vue.js的插件,...

    SpringBoot-Gradle-Demo.zip

    本项目“SpringBoot-Gradle-Demo”将这两者完美融合,旨在帮助开发者理解如何使用Gradle构建SpringBoot项目,并展示模块化的最佳实践。 一、SpringBoot简介 SpringBoot是Spring框架的延伸,旨在简化Spring应用的...

    SpringBoot+gradle+mybatis多数据源动态配置

    本项目结合了SpringBoot、Gradle和MyBatis,旨在实现多数据源的动态配置,这对于处理多个数据库或者分库分表的场景尤其有用。以下是对这个项目的详细解析: **SpringBoot** SpringBoot是由Pivotal团队提供的全新...

    Spring boot 多模块

    在Maven或Gradle项目中,子模块会继承父模块的依赖和配置,这样可以确保所有子模块之间的一致性和减少重复的工作。在本例中,`parent`模块可能包含了Spring Boot的核心依赖和其他公共库的版本信息。 2. **实体模块...

Global site tag (gtag.js) - Google Analytics