下面說一下我的工程結構
package在src/main/java下,工程的名字一定是package的最後一層,不然影響pom的編譯結構和引用結構。
1~3是活動項目,4~6是模塊。
1 畫面(工程名:backoffice) com.xxx.backoffice
2 API (工程名:api) com.xxx.api
3 batch (工程名:batch) com.xxx.batch
4 共通code (工程名:code) com.xxx.common.code
5 共通message (工程名:message) com.xxx.common.message
6 共通util (工程名:util) com.xxx.common.util
例如,畫面項目引用模塊4~6的pom文件。
模塊以message爲例,pom文件如下。注意模塊在pom中沒有build,加了會報錯。
<groupId>com.xxx.common</groupId> 打jar包的文件夾層次
<artifactId>message</artifactId> jar的主體名字
<version>1.0.0</version> jar的版本名字
<packaging>jar</packaging> build成jar
<name>message</name> eclipse點運行時的名字
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.xxx.common</groupId>
<artifactId>message</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<name>message</name>
<properties>
<java.version>11</java.version>
<maven-jar-plugin.version>3.1.1</maven-jar-plugin.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
</project>
畫面工程
<groupId>com.xxx</groupId>
<artifactId>backoffice</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<name>backoffice</name>
注意活動項目在pom中有build,而且必須有。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.xxx</groupId>
<artifactId>backoffice</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<name>backoffice</name>
<properties>
<java.version>11</java.version>
<maven-jar-plugin.version>3.1.1</maven-jar-plugin.version>
</properties>
<dependencies>
。。。。。。
</dependencies>
<build>
<finalName>backoffice</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*</include>
</includes>
</resource>
<resource>
<directory>src/main/resources-env/${resource.dir}</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
</project>
注意活動項目和模塊不在同一個包下,要注意springboot默認設置不能掃描到模塊所在的common包下,要在啓動類上手動加掃描路徑。參見https://blog.csdn.net/thankna/article/details/106213364