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 目录下才是目标代码, 

   

ref : https://blog.csdn.net/u012702547/article/details/95180256?utm_medium=distribute.pc_relevant.none-task-blog-baidujs-2



  以下操作为集成平台:

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>
View Code

 

 配置子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>
View Code

 

 打包及在启动类所在的模块配置 build-plugin

 

 



 

posted @ 2020-05-25 16:36  君子之行  阅读(7)  评论(0)    收藏  举报