700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 多模块项目微服务器 springboot多模块项目(微服务项目)正确打包(jar)方式...

多模块项目微服务器 springboot多模块项目(微服务项目)正确打包(jar)方式...

时间:2023-03-24 23:09:00

相关推荐

多模块项目微服务器 springboot多模块项目(微服务项目)正确打包(jar)方式...

大致步骤

新建一个springboot项目名称为父亲

添加父快捷方式。新建子模块,子模块同时插入新建springboot的项目,依次创建enty和web模块(关键是并配置好pom文件)

web模块依赖于entiy模块中的实体类,创建测试控制器,先测试项目没问题再开始打包(jar)

开始打包

测试jar是否有用

创建项目

注意点 :子模块需要保留xx.iml,xx.mvn文件,父模块保留.idea,.mvn文件 。如果删除了这些可能会报发现主类的错误

要打包项目大致的目录结构如下 :

第一级别:father

第二级别:service、web、entiy

第三级别:eduService

其中web、eduService是web项目可以独立运行,且依赖entiy( 学会了这个,以后所有的多模块项目都能学会打包(jar))

配置父亲的pom文件

配置父模块注意点一: 修改打包为pom(一般父级的打包方式为pom,所以father、service的打包方式为pom)。

pompackaging>

配置父模块注意点二: 记得指定该父模块下面有哪些子模块

entiymodule>

webmodule>

servicemodule>

modules>

配置父模块注意点三: 记得指定java的版本号

1.8java.version>

properties>

配置父模块注意点四: 只需在father配置apache的maven打包插件,service的其他父模块不需要配置这个

org.apache.maven.pluginsgroupId>

maven-compiler-pluginartifactId>

3.1version>

${java.version}source>

${java.version}target>

configuration>

plugin>

org.apache.maven.pluginsgroupId>

maven-surefire-pluginartifactId>

2.19.1version>

trueskipTests>

configuration>

plugin>

plugins>

build>

完整father的pom文件如下:

xsi:schemaLocation="/POM/4.0.0 /xsd/maven-4.0.0.xsd">

4.0.0modelVersion>

org.springframework.bootgroupId>

spring-boot-starter-parentartifactId>

2.4.0version>

parent>

entiymodule>

webmodule>

servicemodule>

modules>

com.zzhgroupId>

fatherartifactId>

0.0.1-SNAPSHOTversion>

pompackaging>

fathername>

1.8java.version>

properties>

org.springframework.bootgroupId>

spring-boot-starterartifactId>

dependency>

org.springframework.bootgroupId>

spring-boot-starter-testartifactId>

testscope>

dependency>

dependencies>

org.apache.maven.pluginsgroupId>

maven-compiler-pluginartifactId>

3.1version>

${java.version}source>

${java.version}target>

configuration>

plugin>

org.apache.maven.pluginsgroupId>

maven-surefire-pluginartifactId>

2.19.1version>

trueskipTests>

configuration>

plugin>

plugins>

build>

project>

配置子模块的pom文件

配置子模块注意点一 : 在parent节点下面加上relativePath,作用是指明依赖哪个父模块pom文件(如果是依赖直接父级就是…/规则和写html那种引用绝对路径一样)。

../pom.xmlrelativePath>

配置子模块注意点二 : 修改打包方式为jar

jarpackaging>

配置子模块注意点三 : 加上springBoot的maven打包插件,并且指定运行的主入口类(springboot的maven插件,用这个插件打包的Jar包可以直接运行,但是不可依赖!),如果此子模块需要被依赖,那么还需加上这句代码(不加会报找不到类的错误)。(entiy模块需要加,其他子模块不要加)

感谢大佬的文章

execclassifier>

org.springframework.bootgroupId>

spring-boot-maven-pluginartifactId>

execclassifier>

com.zzh.demo.EntiyApplicationmainClass>

ZIPlayout>

configuration>

repackagegoal>

goals>

execution>

executions>

plugin>

plugins>

build>

配置子模块注意点四 : 指定以下bulid的编码规则

UTF-8project.build.sourceEncoding>

UTF-8project.reporting.outputEncoding>

1.8java.version>

properties>

完整的web模块pom文件

xsi:schemaLocation="/POM/4.0.0 /xsd/maven-4.0.0.xsd">

4.0.0modelVersion>

org.springframework.bootgroupId>

spring-boot-starter-parentartifactId>

2.4.0version>

../pom.xmlrelativePath>

parent>

com.zzhgroupId>

webartifactId>

0.0.1-SNAPSHOTversion>

webname>

jarpackaging>

UTF-8project.build.sourceEncoding>

UTF-8project.reporting.outputEncoding>

1.8java.version>

properties>

com.zzhgroupId>

entiyartifactId>

0.0.1-SNAPSHOTversion>

dependency>

org.springframework.bootgroupId>

spring-boot-starter-webartifactId>

dependency>

org.springframework.bootgroupId>

spring-boot-starter-testartifactId>

testscope>

dependency>

dependencies>

org.springframework.bootgroupId>

spring-boot-maven-pluginartifactId>

com.zzh.demo.WebApplicationmainClass>

ZIPlayout>

configuration>

repackagegoal>

goals>

execution>

executions>

plugin>

plugins>

build>

project>

完整的eduService模块pom文件(由于service中配置了springboot的打包插件,由于可以依赖传递,这里可以不用配置打包插件)

xsi:schemaLocation="/POM/4.0.0 /xsd/maven-4.0.0.xsd">

serviceartifactId>

com.zzhgroupId>

0.0.1-SNAPSHOTversion>

../pom.xmlrelativePath>

parent>

4.0.0modelVersion>

eduServiceartifactId>

jarpackaging>

eduServicename>

UTF-8project.build.sourceEncoding>

UTF-8project.reporting.outputEncoding>

1.8java.version>

properties>

project>

编写测试代码

entiy模块

编写entiyTest类,并且自己调用自己的entiyTest

public class entiyTest {

public void showEntiyTest() {

System.out.println("调用showEntiyTest成功!!");

}

}

@RestController

@RequestMapping("/entiy")

public class entiyController {

@RequestMapping("/test")

public String testEntiy() {

System.out.println("entiySucess");

return "entiySucess";

}

}

web模块(前提:我们引入了entiy模块的)

@RestController

@RequestMapping("/web")

public class controller {

@RequestMapping("/test")

public String testWeb() {

entiyTest entiyTest = new entiyTest();

entiyTest.showEntiyTest();

return "webSucess";

}

}

eduService模块(前提:我们引入了entiy模块的)

@RestController

@RequestMapping("/eduService")

public class controller {

@RequestMapping("/test")

public String testWeb() {

entiyTest entiyTest = new entiyTest();

entiyTest.showEntiyTest();

return "eduService";

}

}

终极打包了

直接点clean接着点package或者install一键打包就ok了?

然后你会发现你会报这个错哈哈哈哈哈哈

解决办法,点一下这个在clean、package(maven的编译打包检查:关闭点一下就可以了,忽略检查测试文件)

可以参考这个文章

这下就真的打包成功啦开心吧哈哈哈。输入java -jar 然后按tab键就可以切换jar包名字

全部启动okk了,注意启动entiy模块的这个jar包,这个才是可执行的jar包另外一个是可依赖的jar包

在需要对外提供依赖的项目的pom里设置(如本项目的xxx-a、xxx-b),这样设置会让项目生成两个jar:一个可执行jar,一个可依赖的jar;

org.springframework.bootgroupId>

spring-boot-maven-pluginartifactId>

execclassifier>

configuration>

plugin>

plugins>

build>

项目源码链接,点个start吧老妹们哈哈哈哈

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。