创建java多项目框架的步骤:
一. 首先创建根项目
二. 创建portal子项目
1. 定义子项目GroupId,根项目GroupId是com.ai.zhome, ArtifactId是projects, name是pms;
该子项目GroupId设置为com.ai.zhome.pms, ArtifactId设置为portal, name设置为portal
2. 选中根项目projects右键->New->Module->Gradle->选择Java,点击Next->设置GroupId和ArtifactId,点击Next->设置Module Name, 点击Finish,完成创建子项目流程,具体如以下系列图。
3. build.gradle配置文件
plugins {
id 'java'
}
group 'com.ai.zhome.pms'
version '1.0-SNAPSHOT'
sourceCompatibility = 1.8
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.0.1'
implementation 'org.springframework.data:spring-data-redis'
implementation 'redis.clients:jedis'
implementation 'javax.persistence:persistence-api:1.0.2'
implementation 'com.alibaba:druid:1.1.9'
runtimeOnly 'mysql:mysql-connector-java'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'org.springframework.security:spring-security-test'
}
4. 配置启动类和application.yml配置文件,具体配置可见gradle单项目创建总结
三. 创建common子项目
1. 定义子项目GroupId,该子项目GroupId设置为com.ai.zhome.pms, ArtifactId设置为common, name设置为common
2. 创建流程和portal创建流程一致,改项目主要用于公共部分代码编写,如与数据库的交互Mapper层代码
3. build.gradle配置文件
plugins {
id 'java'
}
group 'com.ai.zhome.pms'
version '1.0-SNAPSHOT'
sourceCompatibility = 1.8
dependencies {
implementation('org.mybatis.spring.boot:mybatis-spring-boot-starter:2.0.1')
implementation('javax.validation:validation-api:2.0.1.Final')
}
四. 根项目配置
1. 删除根目录下的src目录,
可选更改,如更改portal项目名称,右键Refactor->Rename->Rename directory->更名为pms.portal;更改common->pms.common
2. 设置根项目的build.gradle
//buildScript里是gradle脚本本身执行所需依赖库和插件
buildscript {
ext {
springBootVersion = '2.1.8.RELEASE'
}
//repositories是project一个方法,闭包作为参数,资源库
repositories {
//本地仓库
mavenLocal()
//maven私服,此处设置为ali的,地址是url
maven {
name "public"
url "http://maven.aliyun.com/nexus/content/groups/public/"
}
//远程中央仓库,地址是https://repo1.maven.org/maven2
mavenCentral()
maven {
url "https://plugins.gradle.org/m2/"
}
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
}
}
//该块的repositories用于多项目构建,为所有项目提供共同所需依赖包。而子项目可以配置自己的repositories以获取自己独需的依赖包
allprojects {
apply plugin: 'idea'
repositories {
mavenLocal()
maven {
url 'http://maven.aliyun.com/nexus/content/groups/public/'
}
mavenCentral()
}
tasks.withType(JavaCompile){
//JDK版本,兼容性,编码环境
sourceCompatibility = 1.8
//编译环境
targetCompatibility = 1.8
//设置编码
options.encoding = "UTF-8"
}
}
//配置这个项目的子项目。这个方法对这个项目的每个子项目执行给定的闭包。目标项目作为闭包的委托传递给闭包
subprojects {
//java插件,传统Java项目对应的一系列构建Task
apply plugin: 'java'
//用来引入自动构建Springboot相关的Task
apply plugin: 'org.springframework.boot'
//Springboot2开始引入的新的构建插件,主要解决的是引用依赖关系的,后续对应的依赖版本都可以忽略不写,
//在我们添加第三方依赖时,不需要写版本号,它能自动帮我们选择一个最优的版本,保证最大限度的扩展
apply plugin: 'io.spring.dependency-management'
javadoc {
options.encoding = "UTF-8"
}
}
project(':pms.portal') {
dependencies {
compile project(":pms.common")
}
}
五. 项目启动
1. 构建项目,加载各依赖包,整体结构目录如图所示
2. 启动portalApplication.java, 正常启动成功,代码已上传至GitHub,欢迎下载指导,谢谢!
https://github.com/Zhome302/pms