微服务项目打包运行的过程,解决各种Exception

一,首先保证 idea 的文件编码全是 UTF-8

在这里插入图片描述

二,每个子模块的 pom :

properties 标签要包含:

<properties>
       <!-- 根据你的 java 版本选择 -->
       <maven.compiler.source>11</maven.compiler.source>
       <maven.compiler.target>11</maven.compiler.target>
       <!-- 一定包含这 3 项 -->
       <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
       <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
       <maven.compiler.encoding>UTF-8</maven.compiler.encoding>
</properties>

以上是为了防止 微服务项目 读取 nacos 等配置中心的配置文件时,或者 xml 日志配置文件时, 抛出 文件格式编码 的异常;

然后在 pom 的末尾,加上 build 标签里的内容:

<dependencies>
 	........
</dependencies>

<build>
        <finalName>order-service</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>
    </build>

这是为了解决 打包后,java -jar 时找不到 主清单的异常;

但这里特别提醒,如果你的子模块没有启动类,而是一些 抽离出的公共的类,比如 entity 实体公共类、公共的工具类 等等,你需要把上述代码中的 executions 标签及其子标签都干掉,因为你不需要启动类,否则打包会提示你找不到启动类;

三,打包

第一种方式:对每个子模块,执行 mvn clean install
在这里插入图片描述

注意,最好先 clean,不然你也不知道有些地方是否被覆盖

第二种方式:打开 idea 右侧按钮,在父工程下,lifecycle 下点 package

在这里插入图片描述

四,执行 jar

比如:nohup java -Dfile.encoding=UTF-8 -jar order-service-0.0.1-SNAPSHOT.jar &

这里的 nohup 是为了防止命令行窗口关闭程序被终止,&是为了后台运行,而 -Dfile.encoding=UTF-8 也必须加上,否则程序内部的一些配置文件仍然可能报关于中文字符集的异常。

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值