gradle项目依赖公共模块

gradle项目依赖公共模块

前言

  • 当有几个服务内部都依赖于一些共同代码时,通常我们会把这部分公共代码抽取剥离出来,然后打成jar包,供其他服务依赖
  • 但这样有个很明显的缺陷就是每次一旦公共代码有更新,那么就必须重新打包jar,再更新到其他服务,其他服务再重新编译打包,在开发阶段这部分公共代码可能还不是很稳定,会随着需求不断增加新内容,那么这种打jar包的方式就显得非常麻烦
  • 于是就在想,能不能不打成jar,而是每个服务都依赖这个公共代码工程,然后跟随服务一起打包编译,这样公共代码即使更新也不用手动去打jar包更新
  • 经过试验,这样的办法的确是有的,本文就以gradle项目示例

步骤

  • 假设目前有三个工程,一个为公共代码(commoncode),两个为业务工程(service-a,service-b),它们在本地目录为

    services
    	- commoncode
    		- build.gradle
    		- settings.gradle
    	- service-a
    		- build.gradle
    		- settings.gradle
    	- service-b
    		- build.gradle
    		- settings.gradle
    
  • 其中service-a和service-b都依赖commoncode

  • 修改service-a的build.gradle和settings.gradle,service-b类似做同样的修改

  • build.gradle修改如下:

    //service-a的build.gradle文件增加 compile project(':commoncode')
    dependencies {
       ...
        compile project(':commoncode')
    }
    
  • settings.gradle修改如下:

    rootProject.name = 'service-a'
    
    //includeFlat 'commoncode' //以下两行代码可以用此句代替,表示的是平级
    include 'commoncode'
    project (':commoncode').projectDir=new File(settingsDir,'../commoncode')
    
  • 经过以上步骤后,对service-a执行打包命令gradlew build,在打完的jar中的BOOT-INF/lib目录下可以看到已经包含了commoncode这个jar包

  • 这样以后就能愉快修改commoncode了,不用每次都手动去更新各个服务的commoncode了

注意

参考

idea gradle 依赖外部项目 - liuguodong1413的博客 - CSDN博客
https://blog.csdn.net/liuguodong1413/article/details/79149624

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
构建Spring Boot 2.6.6分模块项目并在公共模块中使用lombok插件,可以按照以下步骤进行: 首先,在项目根目录下创建一个settings.gradle文件,用于声明多个子项目: ``` rootProject.name = 'my-spring-boot-project' include 'common' include 'web' ``` 在此示例中,我们将创建两个子项目common和web。 接下来,在common项目的build.gradle文件中,添加以下内容: ``` plugins { id 'java' id 'io.freefair.lombok' version '6.2.0' } dependencies { implementation 'org.springframework.boot:spring-boot-starter' // 添加其他依赖项 } ``` 在这里,我们使用了io.freefair.lombok插件,该插件提供了对lombok注解的支持。同时,我们还声明了对Spring Boot框架的依赖。 在web子项目的build.gradle文件中,添加以下内容: ``` plugins { id 'org.springframework.boot' version '2.6.6' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java' } dependencies { implementation project(':common') // 添加其他依赖项 } ``` 在这里,我们使用了Spring Boot Gradle插件和Spring Boot依赖管理插件,以便在web模块中使用Spring Boot框架。同时,我们还声明了对common模块依赖。 最后,在根目录下运行gradle build命令,Gradle将会构建所有子项目,并在web子项目的build/libs目录下生成可执行的jar文件。 这样就完成了Spring Boot 2.6.6分模块项目的构建,并在公共模块中使用了lombok插件。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值