博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Gradle构建多模块项目(整合Java SE 和 Springboot)
阅读量:5935 次
发布时间:2019-06-19

本文共 3780 字,大约阅读时间需要 12 分钟。

参考于

全部源码在github上

步骤

  • 新建一个gradle 空Module(不勾选java或者其他类型),这就是整个大项目
  • 选中刚新建的Module 然后新建Module 只选java 就是se核心复用部分
  • 选中最下的依赖库(External Libraries),然后新建Springboot 的Module,选择Gradle Project 不是Gradle config,不然没有初始代码和完整目录,选择依赖之后建立成功后(后台不再有任务运行)
  • 直接将Springboot模块拖到大项目下,就成为了大项目的子文件夹
  • 修改大项目下的 setting.gradle 文件,添加 include ‘Springboot模块的名字 ’ 即可
  • 然后在右边 gradle工具条中删除 和大项目同级的那个Springboot (前提是你发现和se项目同级出现了Springboot项目名) 弹窗提示然后去掉main和test的勾,就不会删除对应包
  • 修改gradle构建文件:

整个项目的build.gradle 文件

allprojects {    apply plugin: 'java'    group 'com.github.kuangcp'    version = '1.0'    sourceCompatibility = 1.8    targetCompatibility = 1.8}subprojects {    ext {//        slf4jVersion = '1.7.7'        springVersion = '4.3.8.RELEASE'        hibernateVersion = '4.3.1.Final'    }    [compileJava, compileTestJava, javadoc]*.options*.encoding = 'UTF-8'    repositories {        mavenCentral()    }    configurations {        //compile.exclude module: 'commons-logging'        all*.exclude module: 'commons-logging'    }    dependencies {        compile(                 'redis.clients:jedis:2.9.0',                 'org.slf4j:slf4j-api:1.7.25',                 'ch.qos.logback:logback-core:1.1.11',                 'ch.qos.logback:logback-classic:1.1.11',//                "org.slf4j:jcl-over-slf4j:${slf4jVersion}",//                "org.slf4j:slf4j-log4j12:${slf4jVersion}",                "org.springframework:spring-context:$springVersion",//                "org.springframework:spring-orm:$springVersion",//                "org.springframework:spring-tx:$springVersion",//                "org.springframework.data:spring-data-jpa:1.5.2.RELEASE",//                "org.hibernate:hibernate-entitymanager:$hibernateVersion",//                "c3p0:c3p0:0.9.1.2",                "mysql:mysql-connector-java:5.1.35",//                "commons-fileupload:commons-fileupload:1.3.1",                "com.fasterxml.jackson.core:jackson-databind:2.3.1"        )        testCompile(                "org.springframework:spring-test:$springVersion",                "junit:junit:4.12"        )    }}project(':redis_core') {}project(':redis_web') {    apply plugin: "war"    dependencies {        compile project(":redis_core")        compile(                'org.springframework.boot:spring-boot-starter-thymeleaf',                'org.springframework.boot:spring-boot-starter-web'        )        testCompile(                'org.springframework.boot:spring-boot-starter-test'        )//        providedCompile(//                "javax.servlet:javax.servlet-api:3.1.0",//                "javax.servlet.jsp:jsp-api:2.2.1-b03",//                "javax.servlet.jsp.jstl:javax.servlet.jsp.jstl-api:1.2.1"//        )    }    processResources{        /* 从'$projectDir/src/main/java'目录下复制文件到'WEB-INF/classes'目录下覆盖原有同名文件*/        from("$projectDir/src/main/java")    }    /*自定义任务用于将当前子项目的java类打成jar包,此jar包不包含resources下的文件*/    def jarArchiveName="${project.name}-${version}.jar"    task jarWithoutResources(type: Jar) {        from sourceSets.main.output.classesDir        archiveName jarArchiveName    }    /*重写war任务:*/    war {        dependsOn jarWithoutResources        /* classpath排除sourceSets.main.output.classesDir目录,加入jarWithoutResources打出来的jar包 */        classpath = classpath.minus(files(sourceSets.main.output.classesDir)).plus(files("$buildDir/$libsDirName/$jarArchiveName"))    }    /*打印编译运行类路径*/    task jarPath << {        println configurations.compile.asPath    }}/*从子项目拷贝War任务生成的压缩包到根项目的build/explodedDist目录*/task explodedDist(type: Copy) {    into "$buildDir/explodedDist"    subprojects {        from tasks.withType(War)    }}

效果图

效果图

  • 下载项目: git clone https://github.com/Kuangcp/GradleIntegrationMultipleModules
  • 进行构建: gralde build 使用整个项目的build命令就可以把两个模块进行整合了
  • 在web模块的build/lib/下的jar java -jar 名字直接运行,然后打开浏览器 看到有文字输出就是构建成功了

你可能感兴趣的文章
Hive的基本介绍
查看>>
sql server 2000 sp3 数据库复制 修改sp_MSget_repl_commands
查看>>
openlayer9 http://hi.baidu.com/perneter/blog/item/194f1399ba4135056e068cde.html
查看>>
android系统常用Uri
查看>>
今天碰到一个神经病,留念,以后少惹这种人!
查看>>
4. Median of Two Sorted Arrays
查看>>
HBase1.0.1.1 API与原来有所不同
查看>>
转-JS之Window对象
查看>>
fread和fwrite函数功能
查看>>
Github恶搞之自定义你的contribution图表
查看>>
TypeScript学习笔记(五):接口
查看>>
Unity3D之Mecanim动画系统学习笔记(五):Animator Controller
查看>>
关于Chrome谷歌浏览器开发者工具网络Network中返回无数据的问题
查看>>
Handshake failed due to invalid Upgrade header: null 解决方案
查看>>
Windows API 教程(七) hook 钩子监听
查看>>
crontab 在指定时间范围每隔2小时执行一次和指定时间执行实例
查看>>
[转载]---从30岁到35岁:为你的生命多积累一些厚度
查看>>
工作,但别忘了生活
查看>>
线程之死循环。
查看>>
字符串本地化
查看>>