实现后的工程目录结构如下图:
其中sso1为总工程,ssobase为没有main函数的公共工程,ssotask为调用ssobase的应用工程。
1、建立工程sso1
使用idea工具建立spring Initializr项目sso1。
建完后删除src目录,打开project structure,删除sso1下的Spring模块,如下图
pom.xml文件配置中加入基础依赖类
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
不用添加build,只需要用maven自带的install就可以。
2、在sso1项目下添加模块ssobase
(如果不知道怎样添加module,csdn很多,直接搜索)
添加完ssobase模块后src/main/java下面什么文件都没有,需要自己添加文件夹
例如:com/example/base/constant
然后在这下面添加自己的java文件
注意:springboot框架很灵活,文件可以自己添加删除,只要配置好位置就可以,所以很多都是手动完成。
ssobase因为是公共模块,所有不用添加main函数,
pom.xml也不需要专门配置,用它自动生成的即可。
3、在sso1下添加ssotask应用模块
ssotask模块添加完成后src/main/java下面也是空的,需要手动添加,如下,
在com/example/task目录下建立TaskApplication.java,当然里面的内容可以从其他地方拷贝过来就可。
pom.xml配置如下:
<dependencies>
<dependency>
<groupId>com.example</groupId>
<artifactId>ssobase</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork> <!-- 如果没有该配置,devtools不会生效 -->
<!-- 指定该Main Class为全局的唯一入口 -->
<mainClass>com.example.task.TaskApplication</mainClass>
<layout>ZIP</layout>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal><!--可以把依赖的包都打包到生成的Jar包中 -->
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
其中依赖于基础模块ssobase。
build中比较重要的有repackage,如果没有,maven install后的jar文件无法用java -jar 运行。
configuration中的mainClass也很重要,如果有多个springbootapplication时,必须指定一个。
至于其中的devtools,可以参见其他文档。
到此工程建立完成,可以自己试验。