多模块maven+springboot项目打jar包,运行,部署linux(centos)服务器

1.项目maven结构:

项目地址:

https://github.com/KouReal/Rpc-Netty-Registry

 2.之前没有在pom.xml中添加spring-boot-maven-build插件,只有在父工程的pom.xml中写了maven-compiler-plugin这个插件,所以项目只能在eclipse中选中主类run as java application,后来添加了(父工程和子模块都添加了):

<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.1.8.RELEASE</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

3.之后可以在cmd切到项目某个模块的根目录,比如RegistryCenter(启动优先级最高),运行mvn clean package -Dmaven.test.skip=true打包,运行mvn spring-boot:run -Dmaven.test.skip=true运行(界面显示初次运行会下载很多springboot-core文件还有其他的slfj等等插件,在eclipse中运行不会显示)

扫描二维码关注公众号,回复: 7255981 查看本文章

 注意:错误命令演示:使用java命令没有用到spring-boot的maven插件,所以会报错:“NoClassDefFoundError”

 后来参考官方文档,学习到了mvn spring-boot:repackage命令,通过这个命令打包,可以使用java -jar运行,

 于是对这个模块使用:mvn spring-boot:repackage -Dmaven.test.skip=true

结果:

 查stackoverflow,应该用:mvn clean install spring-boot:repackage -Dmaven.test.skip=true

 然后可以在target目录用java -jar运行jar包了:

 使用repackage命令的作用是对原始的maven打包好的jar文件或war文件进一步打包,添加一些运行时的依赖资源,生成一个更大的jar 包,这个jar包就可以用java -jar运行了。

猜你喜欢

转载自www.cnblogs.com/CreatorKou/p/11504387.html