springboot的maven工程(包含多模塊)package命名有講究,pom不一樣。

下面說一下我的工程結構

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章