使用gradle 在idea中创建一个多module的springboot项目

2018-11-327
gradle,springboot 1 评论 90 浏览

网上搜索了很久没找到这类的详细说明,都是你抄袭我的我抄袭他的,完事儿了还不能打包,很难受,所以自己摸索了一套流程来创建多module项目,其中参考了官方文档(gradle)

版本说明

1 认使用springboot使用1.5.9, 目前2.1.0已经发布, 但是该版本的gradle构建时相对于1.5.9 版本有些改动, 目前还没找到哪儿出了问题, 不过maven是可以正常搭建;

2 默认gradle使用的是4.6;


搭建步骤

一. 新建文件夹keppel作为项目的根目录, 打开cmd进入该目录, 执行如下命令来初始化根项目:

gradle init

二. 以上命令已经初始化完了项目的根目录,然后就直接用intellij idea打开该目录

png

2jpg

三. 此时项目结构如上图所示, 然后开始新增通用模块 common, 右键keppel根项目new-module

3jpg

四. 修改common模块下的build.gradle, 如下所示:

  buildscript {
	repositories {
	  mavenLocal()
	  jcenter()
	  mavenCentral()
	  maven { url springRepo }
	  maven {
		url "https://plugins.gradle.org/m2/"
	  }
	}
  }

  apply plugin: 'io.spring.dependency-management'

  jar {
	baseName = 'keppel-common'
	version = '0.0.1-SNAPSHOT'
  }

  dependencies {
	compile('org.springframework:spring-context')
	compile("org.hibernate:hibernate-validator")
	compile('com.google.code.gson:gson:2.2.4')
	compile 'com.fasterxml.jackson.core:jackson-databind:2.6.4'
	compile 'com.fasterxml.jackson.core:jackson-core:2.6.4'
	compile 'com.fasterxml.jackson.core:jackson-annotations:2.6.4'
	compile 'org.jdom:jdom2:2.0.5'
	compileOnly('org.projectlombok:lombok')
	testCompile('org.springframework.boot:spring-boot-starter-test')
  }

  dependencyManagement {
	imports { mavenBom("org.springframework.boot:spring-boot-dependencies:${springBootVersion}") }
  }

五. 接着修改根目录下的build.gradle文件:

def vJavaLang = '1.8'
def bootProjects = [project(':api')]
def gradleDir = "${rootProject.rootDir}/gradle"

group = 'com.keppel'
version = '0.0.1-SNAPSHOT'

buildscript {
	ext {
	  springBootVersion = '1.5.9.RELEASE'
	  springRepo = 'http://repo.spring.io/libs-release'
	}
	repositories {
	  mavenLocal()
	  jcenter()
	  mavenCentral()
	  maven { url springRepo }
	}
	dependencies {
	  classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
	}
}

subprojects {
	apply plugin: "eclipse"
	apply plugin: "idea"
	apply plugin: 'java'

	targetCompatibility = vJavaLang
	sourceCompatibility = vJavaLang

	repositories {
	  mavenLocal()
	  jcenter()
	  mavenCentral()
	}
}

configure(bootProjects) {
	apply plugin: 'eclipse'
	apply plugin: 'idea'
	apply plugin: 'java'
	apply plugin: 'org.springframework.boot'

	targetCompatibility = vJavaLang
	sourceCompatibility = vJavaLang

	repositories {
	  mavenLocal()
	  jcenter()
	  mavenCentral()
	}
}

六. 新增项目入口模块 api, 方法同上,生成的子模块下面都是只有一个build.gradle文件,修改该文件:

jar {
	baseName = 'keppel-api'
	version = '0.0.1-SNAPSHOT'
}

springBoot {
	  mainClass = 'com.keppel.ApiApplication'
}

dependencies {
	  compile project(':core')
	  compile("org.springframework.boot:spring-boot-starter-web")
	  testCompile('org.springframework.boot:spring-boot-starter-test')
}

七. 修改完成后再在api模块下面添加src-main-java文件夹,java文件夹下面并排添加resources文件夹,java文件夹下面创建主类ApiApplication:

package com.keppel;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
* Created by keppel on 2018/11/23.
*/
@SpringBootApplication
public class ApiApplication {
	public static void main(String[] args) {
		SpringApplication.run(ApiApplication.class, args);
	}
}

八. 此时此刻,项目已经搭建完成大半了。项目的结构图如下图所示:


4jpg

九. 开始测试项目是否搭建成功
创建一个新的module: user module, build.gradle和api的一样,引入common
然后编写一个类进行测试

我是一个一直在努力挣扎, 从未放弃的菜逼!
评论
  • 等待

    学到了

    回复»
发表评论
validate