SpringBoot创建多模块方式以及打包方式
springboot重构多模块的步骤
模型层:model
持久层:persistence
表示层:web
步骤:
正常创建一个springboot项目
修改创建项目的pom文件,将jar修改为pom
选择根项目,New–Module–Maven–Next–ArtifactId中输入model名,比如web --Next–Finish完成模块的创建
将根项目src/java下的包信息以及属性文件,分别移动到新建的web模块中对应的目录下,然后根项目的src目录就变成一个空目录,将其删除,在web下面,启动运行项目,项目成功启动,说明构建成功了
以步骤3的方式,继续创建其他模块persistence模块、model模块
到此三个模块web模块、persistence模块、model模块就已经创建完成,它们的依赖关系是:web 依赖于persistence,persistence 依赖于model。三个模块创建完成后,会产生三个对应的pom.xml文件。然后根据模块依赖关系建立多模块关系,
在web.xml中添加如下依赖关系:
dependencies
dependency
groupIdcom.lhf/groupId
artifactIdpersistence/artifactId
version0.0.1-SNAPSHOT/version
/dependency
/dependencies
在persistence.xml中添加如下依赖:
dependencies
dependency
groupIdcom.lhf/groupId
artifactIdmodel/artifactId
version0.0.1-SNAPSHOT/version
/dependency
/dependencies
到此就完成了springboot多模块重构的搭建springboot项目打包
一、命令方式打成jar包 步骤
在windows环境下,启动一个cmd命令窗口,然后复制将要打包的项目的路径,cd 项目路径 进入项目下面
执行命令打包,命令:mvn -Dmaven.test.skip -U clean package
此时可能打包失败,原因是:缺少spring-boot-maven-plugin插件,没有找到入口类Main class,解决办法:进入根项目的pom.xml文件中,添加如下信息:
build plugins plugin groupIdorg.springframework.boot/groupId artifactIdspring-boot-maven-plugin/artifactId configuration mainClasscom.lhf.SpringbootModelsDemoApplication/mainClass /configuration /plugin /plugins /build
然后再次执行命令:mvn -Dmaven.test.skip -U clean package
此时可能还会报错,找不到相关的类,解决办法,再次修改根项目的pom.xml文件,添加相关的依赖信息,如下:
build
plugins
plugin
groupIdorg.springframework.boot/groupId
artifactIdspring-boot-maven-plugin/artifactId
dependencies
dependency
groupIdcom.lhf/groupId
artifactIdmodel/artifactId
version0.0.1-SNAPSHOT/version
/dependency
/dependencies
configuration
mainClasscom.lhf.SpringbootModelsDemoApplication/mainClass
/configuration
/plugin
/plugins
/build
然后再一次运行打包命令,命令:mvn -Dmaven.test.skip -U clean package,此时可能出现新的问题,它会尝试下载相关的jar包,会提示snapshot仓储中没有这个包的信息,解决办法执行另一个命令,命令:mvn -Dmaven.test.skip -U clean install,你会发现其实还是错误的,你崩溃没有?
其实上面的方法本就是错误的操作方法,在多模块下,我们的启动类是在Web模块下,因此我们要将根项目中pom.xml文件的如下信息,剪切到Web模块下的pom.xml文件中,如下:
build
plugins
plugin
groupIdorg.springframework.boot/groupId
artifactIdspring-boot-maven-plugin/artifactId
configuration
mainClasscom.lhf.SpringbootModelsDemoApplication/mainClass
/configuration
/plugin
/plugins
/build
然后执行打包命令,命令:mvn -Dmaven.test.skip -U clean package, 打包之后,生成的jar包就会位于web模块下的target目录中
打包成功之后,可以执行命令:java -jar 项目jar包.jar 启动项目二、命令方式打war包 步骤
将springboot项目打包成war包步骤:
在Web模块下的pom.xml文件中,添加packaging信息为:war
然后执行打包命令:mvn -Dmaven.test.skip -U clean package 进行打包,此时它会提醒你增加WEB-INF/web.xml文件,此时你需要到Web模块下,创建webapp/WEB_INF/web.xml文件,将文件创建好即可
然后再次执行打包命令,进行打包,打包成功之后,war位于web模块下的target目录中,cmd命令进入target目录下,执行java -jar 项目war包.war 启动运行项目三、使用maven命令启动项目
cmd命令进入项目的目录,执行命令:mvn spring-boot:run 启动项目,此时会提醒你没有找到Main class,解决办法,切换到Web模块下,并在pom.xml文件中,添加如下信息:
build
plugins
plugin
groupIdorg.springframework.boot/groupId
artifactIdspring-boot-maven-plugin/artifactId
configuration
mainClasscom.lhf.SpringbootModelsDemoApplication/mainClass
/configuration
/plugin
/plugins
/build
再次执行:mvn spring-boot:run命令,再次启动,此时还会报错,提示你jar没有找到,没有找到相关的依赖,解决办法:退回到根目录,执行命令:mvn -Dmaven.test.skip -U clean install,进行相关依赖安装,此时将会提示你已经成功,再次进入Web模块目录下,执行:mvn spring-boot:run进行启动项目,就能成功启动
解决报错问题
如果遇到如下错误信息:
[ERROR] Unknown lifecycle phase “.test.skip”. You must specify a valid lifecycle phase or a goal in the format : or :[:]:. Available lifecycle phases are: validate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, process-classes, generate-test-sources, process-test-sources, generate-test-resources, process-test-resources, test-compile, process-test-classes, test, prepare-package, package, pre-integration-test, integration-test, post-integration-test, verify, install, deploy, pre-clean, clean, post-clean, pre-site, site, post-site, site-deploy. - [Help 1]
解决办法:分别执行以下命令:
mvn install
mvn compiler:compile
mvn org.apache.maven.plugins:maven-compiler-plugin:compile
mvn org.apache.maven.plugins:maven-compiler-plugin:2.0.2:compile
即可解决
SpringBoot创建多模块方式以及打包方式的更多相关文章
- Springboot中IDE支持两种打包方式,即jar包和war包
Springboot中IDE支持两种打包方式,即jar包和war包 打包之前修改pom.xml中的packaging节点,改为jar或者war 在项目的根目录执行maven 命令clean pa ...
- 利用springboot创建多模块项目
本文旨在用最通俗的语言讲述最枯燥的基本知识 最近要对一个不大不小的项目进行重构,用spring觉得太过于繁琐,用cloud又有觉得过于庞大,维护的人手不够:权衡之下,最终选了springboot作为架 ...
- SpringBoot Maven多模块整合MyBatis 打包jar
最近公司开始新的项目,框架选定为SpringBoot+Mybatis,本篇主要记录了在IDEA中搭建SpringBoot多模块项目的过程. 源码:https://github.com/12641561 ...
- SpringBoot+Maven多模块项目(创建、依赖、打包可执行jar包部署测试)完整流程
一,创建Maven多模块项目先建立外层父工程 File →new →project 选择Spring Initializr Next下一步到以下页面 工程结构如下 ...
- springboot的maven多模块项目架构微服务搭建——构建多模块项目(依赖方式)
总想对微服务架构做一个小小的总结,不知如何下手,最近觉得还是从搭建微服务的过程来入手,对于springboot的maven项目从构建多模块架构进而衍化为常用的微服务架构来做个记录吧. 首先,创建多个s ...
- Springboot 创建的maven获取resource资源下的文件的两种方式
Springboot 创建的maven项目 打包后获取resource下的资源文件的两种方式: 资源目录: resources/config/wordFileXml/wordFileRecord.xm ...
- 关于springboot项目的jar和war两种打包方式部署的区别
关于springboot项目的jar和war两种打包方式部署的区别 关于springboot项目的jar和war两种打包方式部署的区别? https://bbs.csdn.net/topics/392 ...
- springboot整合mybatis(映射文件方式和注解方式)
springboot作为一个微服务框架,给我们开发人员提供极大的便利,秉着约定大于配置的原则,通过starter包的形式为我们做了许多默认的配置,在进行数据持久化到关系型数据库时,我们一般都会首选sp ...
- IntelliJ IDEA自身以及maven项目打包方式
1. Idea自身打包方式 1.1 创建Artifacts 快捷键(Ctrl+Alt+Shift+S)打开项目的Project Structure.在Artifacts创建 接着,指定main cla ...
随机推荐
- angularJS的过滤器!
angularJS过滤器: filter currency date filter json limitTo lowercase number orderBy uppercase ...... Fil ...
- Linux系统 centOS 更换软件安装源
阿里云Linux安装软件镜像源阿里云是最近新出的一个镜像源.得益与阿里云的高速发展,这么大的需求,肯定会推出自己的镜像源.阿里云Linux安装镜像源地址:http://mirrors.aliyun.c ...
- Linux系统下 Supervisor 安装搭建
在 web 应用部署到线上后,需要保证应用一直处于运行状态,在遇到程序异常.报错等情况,导致 web 应用终止时,需要保证程序可以立刻重启,继续提供服务. 所以,就需要一个工具,时刻监控 web 应用 ...
- Maven 的聚合(多模块)和 Parent 继承
2017年06月26日 21:16:57 Maven 的聚合(多模块)和 Parent 继承 - 偶尔记一下 - CSDN博客 https://blog.csdn.net/isea533/articl ...
- android的一些类库的优缺点
经过本人的面试经验,以及接触的android项目,总结了一下android的一些类库的优缺点: 一,线程方面 1.AsyncTask 首先是线程优化以及缺陷方面,针对目前大多数类库来说,都有好的设计方 ...
- wsdl客户端代码生成的方法
在jdk的bin目录下有一个wsimport.exe的工具,使用该工具命令生产java客户端代码: 命令如下: wsimport -keep -d d:\ -s d:\src -p com.map ...
- 服务器为什么这么慢?耗尽了CPU、RAM和磁盘I/O资源
机器运行缓慢通常是由于消耗了太多系统特定的资源.系统的主要资源包括CPU.RAM.磁盘I/O以及网络.过度使用这些资源的任何一种都会让系统陷入困境.不过,如果能登录到系统之中,可以借助大量工具确定问题 ...
- Magento 2 初探
进入公司有一小段时间了,虽然自己之前一直从事前端工作,但是基本工作就是做一些国内电商网站的前端工作.在刚进入这家公司时,自己对 magento2 一无所知,尽管上班前看过老大发给我的一些文档资料,但是 ...
- 解决Android中ListView列表只显示一项数据的问题
思路:获取每项item的高度,并相加,再加上分割线的高度,作为整个ListView的高度,方法如下: public static void setListViewHeightBasedOnChildr ...
- 【Loadrunner】LR破解版录制手机脚本
LR破解版录制手机脚本 最近在网上听到好多童鞋都在问如何用LR做手机性能测试,恰好自己对这方面也挺感兴趣,经过查阅很多资料,形成此文档以做备注~!如果有感觉我写的不对的地方,敬请指正 ...