当前位置:   article > 正文

idea中使用maven进行多模块打包部署时jar包中无依赖的问题(示例:jar包才5k,且无法正常启动)_idea打jar包没有依赖jar

idea打jar包没有依赖jar

引言

模块关系:

  • A:代表父工程
  • B:代表WEB模块,主加载类所在模块
  • S:业务处理模块
  • D:数据处理模块
  • E:基础模块

依赖关系如下:

  • D依赖E
  • S依赖E
  • B依赖D,B依赖S

第一次进行maven多模块的打包,在打包过程中遇到了些许问题(模块关系与依赖关系如上所述):

  1. 如何进行打包
  2. 打包后jar包过小,检查后发现其中没有lib依赖

image-20230318003308569

问题解决

**注意:**父工程中打包方式需要设置为pom,子工程中不需要设置打包方式

示例:

<packaging>pom</packaging>
  • 1

A模块pom文件配置

即父工程的pom.xml文件

注意:

  • pom 中一定要指定 maven-compiler-pluginmaven-surefire-plugin 插件。
  • <packaging>pom</packaging> 打包类型写 pom 包。
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <source>${java.version}</source>
                <target>${java.version}</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.19.1</version>
            <configuration>
                <skipTests>true</skipTests>    <!--默认关掉单元测试 -->
            </configuration>
        </plugin>
    </plugins>
</build>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

B模块pom文件配置

主加载类所在模块,如果有多个模块有主加载类,则都需要加上

注意:

  • 子 pom 文件中一定要指定spring-boot-maven-plugin插件和主启动类的 全类名
  • <packaging>jar</packaging>打包类型写 Jar包。(这个我不确认,我没有加,如果不行的话可以加上试试)
<!--spring boot打包的话需要指定一个唯一的入门-->
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <!-- 指定该Main Class为全局的唯一入口 -->
                <mainClass>com.lzj.WebDemoApplication</mainClass>
                <layout>ZIP</layout>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <!--可以把依赖的包都打包到生成的Jar包中-->
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

打包

在父工程下进行打包(有root标识)

**步骤:**点击Maven->点击父工程(如图中是aws_demo)->Lifecycle->clean->install->package

打完包后就可以进行部署了

image-20230318002855238

总结

经过上述打包操作后,拥有主加载类的模块中的jar包就可以在linux或windows中去运行了。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/908010
推荐阅读
相关标签
  

闽ICP备14008679号