微服务下多模块打包找不到类和符号项目可以启动,打包编译运行就报错的问题

出现多模块打包找不到类和符号的问题?

maven-compiler-plugin和spring-boot-maven-plugin 这俩个插件是我们微服务打包常用到的

1,每个模块配置了spring-boot-maven-plugin 打出来的包都是独立的,即使你clean install 都一样。

2,idea工具有时候打包会出问题,最好的解决办法是通过命令去编译项目打包。

3,启动的项目配置打包。比如我们有三个maven模块:parent,service,server。其中server是一个可以启动的springboot项目,其他模块都是作为jar包引入到server模块中使用的,这时候,我们只能在server模块中引入spring-boot-maven-plugin插件,将api项目打成可执行jar。其余项目都只使用maven-compiler-plugin。这样找不到类的问题就解决了。

server 的pom.xm


    <!--构建-->
    <profiles>
        <profile>
            <id>local</id>
            <properties>
                <profiles.active>local</profiles.active>
            </properties>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
        <profile>
            <id>dev</id>
            <properties>
                <profiles.active>dev</profiles.active>
            </properties>
        </profile>
        <profile>
            <id>test</id>
            <properties>
                <profiles.active>test</profiles.active>
            </properties>
        </profile>
        <profile>
            <id>uat</id>
            <properties>
                <profiles.active>uat</profiles.active>
            </properties>
        </profile>
        <profile>
            <id>prod</id>
            <properties>
                <profiles.active>prod</profiles.active>
            </properties>
        </profile>
    </profiles>
    <build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.xml</include>
                    <include>**/*.tld</include>
                    <include>**/*.html</include>
                    <include>**/*.yml</include>
                    <include>**/*.xlsx</include>
                </includes>
                <filtering>true</filtering>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>config/*.properties</include>
                    <include>config/*.yml</include>
                </includes>
                <filtering>true</filtering>
            </resource>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.yml</include>
                    <include>**/*.xml</include>
                    <include>**/*.tld</include>
                    <include>**/*.xlsx</include>
                </includes>
                <filtering>false</filtering>
            </resource>
        </resources>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <executable>true</executable>
                    <finalName>${project.artifactId}</finalName>
                </configuration>
            </plugin>
        </plugins>
    </build>

父依赖:

4,最好使用mvn 命令打包编译。以下是问题汇总。

## 编译项目
mvn -X -DskipTests=true compile  

## 编译项目并且打包 切入到项目最外面
mvn clean install package -Dmaven.test.skip=true  

java -jar启动nacos 报
nacos报错: java.nio.charset.MalformedInputException: Input length = 1

原因是nacos的yml编码和项目不一致,导致其他问题。

解决办法:

java -jar -Dfile.encoding=utf-8 xxx.jar

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小杨互联网

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值