关于Java微服务的打包问题

2,059 阅读1分钟

Java的微服务打包时产生的jar包,在运行的时候会报找不到主类清单之类的错误,这里记录一下解决方法

1、首先在父工程的pom文件下的放入下面的代码,引入相关插件

    <build>
        <plugins>
<!--            <plugin>-->
<!--                <groupId>org.springframework.boot</groupId>-->
<!--                <artifactId>spring-boot-maven-plugin</artifactId>-->
<!--            </plugin>-->
            <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>
                <artifactId>maven-surefire-plugin</artifactId>
                <!-- 打包跳过单元测试 -->
                <configuration>
                    <skipTests>true</skipTests>
                    <testFailureIgnore>true</testFailureIgnore>
                </configuration>
            </plugin>
        </plugins>
    </build>

这里是不选择用springboot自带的打包插件,而是用了Apache的

2、然后再每一个微服务的pom文件下放入下面的代码,引入相关插件

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <mainClass>com.example.authservice.AuthApplication</mainClass>
                <goal>repackage</goal>
            </configuration>
        </plugin>

    </plugins>
</build>

这里必需要指定启动类的路径,每个模块设置对应的启动类路径,同时指定好打包方式为jar

<packaging>jar</packaging>

之后打开maven的面板,执行package,在每个模块下的target目录里生成一个jar包

image.png

image.png 之后进入cmd终端命令窗口,执行 java -jar jar包 命令即可运行起来

image.png (中文乱码可先忽视)