服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - java 基于maven多模块合并打包部署的操作过程

java 基于maven多模块合并打包部署的操作过程

2023-03-01 14:42肆哑 Java教程

这篇文章主要介绍了java 基于maven多模块合并打包部署的操作过程,本文通过实例代码图文相结合给大家介绍的非常详细,需要的朋友可以参考下

项目环境

  • jdk 1.8
  • spring 2.7.x
  • maven 3.6

项目结构

java 基于maven多模块合并打包部署的操作过程

模块功能

client – 对外service
common – 共用工具切面等
main – 启动类
goods – 子模块具体实现

模块间依赖关系

client – 无依赖
common – 无依赖
main – client、common、goods
goods – client、common

具体POM配置

顶级pom

引入需要被使用的所有项目子模块,并统一制定版本号

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
<groupId>org.ct</groupId>
<artifactId>gp-data-analysis</artifactId>
<packaging>pom</packaging>
<version>${gp-data.version}</version>
<modules>
    <module>gp-data-client</module>
    <module>gp-data-common</module>
    <module>gp-futrue-goods</module>
    <module>gp-data-main</module>
</modules>
 
<properties>
    <maven.compiler.source>8</maven.compiler.source>
    <maven.compiler.target>8</maven.compiler.target>
    <gp-data.version>1.0.0</gp-data.version>
</properties>
 
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.ct</groupId>
            <artifactId>gp-data-analysis</artifactId>
            <version>${gp-data.version}</version>
        </dependency>
        <dependency>
            <groupId>org.ct</groupId>
            <artifactId>gp-data-main</artifactId>
            <version>${gp-data.version}</version>
        </dependency>
        <dependency>
            <groupId>org.ct</groupId>
            <artifactId>gp-data-common</artifactId>
            <version>${gp-data.version}</version>
        </dependency>
        <dependency>
            <groupId>org.ct</groupId>
            <artifactId>gp-data-client</artifactId>
            <version>${gp-data.version}</version>
        </dependency>
        <dependency>
            <groupId>org.ct</groupId>
            <artifactId>gp-data-futrue</artifactId>
            <version>${gp-data.version}</version>
        </dependency>
     </dependencies>
</dependencyManagement>
 
<build>
    <!-- 引入maven打包工具 -->
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
                <skip>true</skip>
            </configuration>
        </plugin>
    </plugins>
</build>

client、common、goods类似

?
1
2
3
4
5
6
<!-- 指定父pom版本 -->
<parent>
    <artifactId>gp-data-analysis</artifactId>
    <groupId>org.ct</groupId>
    <version>${gp-data.version}</version>
</parent>

main 设置打包入口,扫描的xml配置项等
    main 中dependency中引入顺序需要注意,需要保证,未被依赖的在前,被依赖的子模块在后。因为此处的顺序决定了maven install的顺序

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
<parent>
    <artifactId>gp-data-analysis</artifactId>
    <groupId>org.ct</groupId>
    <version>${gp-data.version}</version>
</parent>
 <dependencies>
    <dependency>
        <groupId>org.ct</groupId>
        <artifactId>gp-data-common</artifactId>
    </dependency>
    <dependency>
        <groupId>org.ct</groupId>
        <artifactId>gp-data-client</artifactId>
    </dependency>
    <dependency>
        <groupId>org.ct</groupId>
        <artifactId>gp-data-futrue</artifactId>
    </dependency>
</dependencies>
 
 <build>
    <plugins>
        <!--打包插件-->
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <version>2.4.3</version>
            <executions>
                <execution>
                    <goals>
                        <!-- 整合打jar包 -->
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <!--支持静态文件热部署-->
                <addResources>true</addResources>
                <!-- 指定该Main Class为全局的唯一入口 -->
                <mainClass>org.ct.gp.GpDataBootApplication</mainClass>
            </configuration>
        </plugin>
    </plugins>
 
    <!--打包规则,打包时将resources文件夹打包进去-->
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>false</filtering>
        </resource>
 
        <!--保证mapper文件夹中的.xml文件可以被编译-->
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.xml</include>
            </includes>
            <filtering>false</filtering>
        </resource>
    </resources>
</build>

使用maven打包root目录

java 基于maven多模块合并打包部署的操作过程

生成的main jar,及包含了所有模块

java 基于maven多模块合并打包部署的操作过程

到此这篇关于java 基于maven多模块合并打包部署的文章就介绍到这了,更多相关maven多模块合并打包部署内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/nisemono_ct/article/details/129109767

延伸 · 阅读

精彩推荐