Tech&WK_Architecture_SyetemOrganization
背景: 将项目中 service layer 业务逻辑部分从中抽离独立出来, 初期物理继承,后期service net 互联。
recode ,记录此间的历程和反思
1. 2020-05-25
以mock 构建modular间交互的接口, 分离抽象,使 brms 与 platform 均依赖于抽象接口.


2020-07-17 14:35:20



将独立的jar 集成
info :
被集成的 jar :

note : Spring boot 的项目以jar包的形式打包,这种 jar 包可通过命令 jarva -jar xxx.jar 运行。
Spring boot 直接打包jar 是不能被其他项目所依赖,即使被依赖了也不能直接使用其中的类。
普通的 jar 包,解压后就是包名,包里就是代码, 而 spring boot 打包成的可执行 jar 解压后,
在 \BOOT-INF\classes 目录下才是目标代码,


以下操作为集成平台:
1. 引入相应的依赖:

2. POM 设置:


基于 Spring boot 的多模块系统
thanks for : https://segmentfault.com/a/1190000011367492
IDEA 的 Spring.io 不稳定的时候,采用 https://start.aliyun.com 其内容不同于 https://start.spring.io

要点
1. 初始创建Spring boot 父模块时, 除了标识部分均删除,否则新创建的子模块会替换。
2. 父pom packging -> pom , 配置 spring-boot-parent, 配置子模块及其依赖。
3. 各级子模块配置父模块依赖。
4. 除了启动类所在模块需要在pom配置build plugin, 其余的均无需。
5. 在父模块maven, clean - package, 在指定的模块下的 jar, 可使用 java -jar [jarname] 启动应用

配置父pom



父pom
1 <?xml version="1.0" encoding="UTF-8"?> 2 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 3 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> 4 <modelVersion>4.0.0</modelVersion> 5 6 <groupId>org.srdc.eis</groupId> 7 <artifactId>eis</artifactId> 8 <version>0.0.1-SNAPSHOT</version> 9 <name>eis</name> 10 <description>SRDC enterprise information system</description> 11 12 <packaging>pom</packaging> 13 14 <properties> 15 <java.version>1.8</java.version> 16 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 17 <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 18 <spring-boot.version>2.3.0.RELEASE</spring-boot.version> 19 <eis.version>0.0.1-SNAPSHOT</eis.version> 20 </properties> 21 22 <parent> 23 <groupId>org.springframework.boot</groupId> 24 <artifactId>spring-boot-starter-parent</artifactId> 25 <version>2.3.0.RELEASE</version> 26 <relativePath/> 27 </parent> 28 29 <modules> 30 <module>domain</module> 31 <module>service</module> 32 <module>repository</module> 33 <module>present</module> 34 </modules> 35 36 <dependencyManagement> 37 <dependencies> 38 <dependency> 39 <groupId>org.srdc.eis</groupId> 40 <artifactId>domain</artifactId> 41 <version>${spring-boot.version}</version> 42 </dependency> 43 <dependency> 44 <groupId>org.srdc.eis</groupId> 45 <artifactId>service</artifactId> 46 <version>${spring-boot.version}</version> 47 </dependency> 48 <dependency> 49 <groupId>org.srdc.eis</groupId> 50 <artifactId>repository</artifactId> 51 <version>${spring-boot.version}</version> 52 </dependency> 53 <dependency> 54 <groupId>org.srdc.eis</groupId> 55 <artifactId>present</artifactId> 56 <version>${spring-boot.version}</version> 57 </dependency> 58 </dependencies> 59 </dependencyManagement> 60 61 </project>
配置子module

子 pom , 带启动类
1 <?xml version="1.0" encoding="UTF-8"?> 2 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 3 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> 4 <modelVersion>4.0.0</modelVersion> 5 <groupId>org.srdc.eis</groupId> 6 <artifactId>present</artifactId> 7 <version>0.0.1-SNAPSHOT</version> 8 <name>present</name> 9 <description>Demo project for Spring Boot</description> 10 11 <properties> 12 <java.version>1.8</java.version> 13 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 14 <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 15 <spring-boot.version>2.3.0.RELEASE</spring-boot.version> 16 </properties> 17 18 <parent> 19 <groupId>org.srdc.eis</groupId> 20 <artifactId>eis</artifactId> 21 <version>0.0.1-SNAPSHOT</version> 22 </parent> 23 24 <dependencies> 25 <dependency> 26 <groupId>org.springframework.boot</groupId> 27 <artifactId>spring-boot-starter-thymeleaf</artifactId> 28 </dependency> 29 <dependency> 30 <groupId>org.springframework.boot</groupId> 31 <artifactId>spring-boot-starter-web</artifactId> 32 </dependency> 33 34 <dependency> 35 <groupId>org.springframework.boot</groupId> 36 <artifactId>spring-boot-starter-test</artifactId> 37 <scope>test</scope> 38 <exclusions> 39 <exclusion> 40 <groupId>org.junit.vintage</groupId> 41 <artifactId>junit-vintage-engine</artifactId> 42 </exclusion> 43 </exclusions> 44 </dependency> 45 </dependencies> 46 47 <build> 48 <plugins> 49 <plugin> 50 <groupId>org.apache.maven.plugins</groupId> 51 <artifactId>maven-compiler-plugin</artifactId> 52 <version>3.8.1</version> 53 <configuration> 54 <source>1.8</source> 55 <target>1.8</target> 56 <encoding>UTF-8</encoding> 57 </configuration> 58 </plugin> 59 <plugin> 60 <groupId>org.springframework.boot</groupId> 61 <artifactId>spring-boot-maven-plugin</artifactId> 62 <version>2.3.0.RELEASE</version> 63 <configuration> 64 <mainClass>org.srdc.eis.present.PresentApplication</mainClass> 65 </configuration> 66 <executions> 67 <execution> 68 <id>repackage</id> 69 <goals> 70 <goal>repackage</goal> 71 </goals> 72 </execution> 73 </executions> 74 </plugin> 75 </plugins> 76 </build> 77 78 </project>
打包及在启动类所在的模块配置 build-plugin


浙公网安备 33010602011771号