mvn打包(八)
一、命令
1、通过下述命令对maven项目进行打包
mvn clean package -Dmaven.test.skip=true
在项目的根路径下打开命令行窗口。如下图
需要注意的是,在settings.xml中配置的maven仓库,需要包含pom.xml中所有依赖的jar包,不然会报错。
需要注意的是,若当maven的环境变量是在用户变量中进行配置的,执行mvn命令时,则会去c盘的.m下寻找settings.xml文件。若是在系统变量中进行配置的,则会去maven的bin目录下查找。
maven环境变量:
F:\config\maven\apache-maven-3.3.9 E:\ProgramFiles\Java\jdk1.7.0_80\bin;%MAVEN_HOME%\bin;E:\ProgramFiles\Java\jdk1.7.0_80\jre\bin;C:\Program Files (x86)\VanDyke Software\Clients\;C:\Users\Administrator\AppData\Local\BypassRuntm;C:\Users\Administrator\AppData\Roaming\npm;C:\Users\Administrator\AppData\Local\Yarn\bin;C:\Users\Administrator\AppData\Local\GitHubDesktop\bin
二、mvn 本地打包注意事项
1、设置settings.xml文件
在命令行窗口执行maven命令时指定setting.xml文件 mvn clean package --settings F:\config\maven\settings\settings.xml -Dmaven.test.skip=true mvn -s F:\config\maven\settings\settings.xml clean package -Dmaven.test.skip=true
2、修改pom.xml文件:若打完包没有配置文件(Maven项目编译之后classes中没有.properties等文件),需要添加如下配置
<build> <resources> <resource> <directory>src/main/config</directory> <includes> <include>**/*.properties</include> <include>**/*.dtd</include> <include>**/*.csv</include> <include>**/*.xml</include> </includes> <!--<filtering>true</filtering>--> </resource> <resource> <directory>src/main/java</directory> <includes> <include>**/*.properties</include> <include>**/*.dtd</include> <include>**/*.csv</include> <include>**/*.xml</include> </includes> </resource> <resource> <directory>src/main/java</directory> <includes> <include>**/*.properties</include> <include>**/*.dtd</include> <include>**/*.csv</include> <include>**/*.xml</include> </includes> </resource> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.properties</include> <include>**/*.dtd</include> <include>**/*.csv</include> <include>**/*.xml</include> </includes> </resource> <resource> <directory>src/main/sino</directory> <includes> <include>**/*.properties</include> <include>**/*.dtd</include> <include>**/*.csv</include> <include>**/*.xml</include> </includes> </resource> </resources> </build>
查找指定目录下的所有配置文件。
3、修改catalina.bat:添加启动参数。
如果项目需要配置启动参数,即
执行完mvn命令后,会在target下面生成war包。
4、解压war包并启动tomcat
将war包放到tomcat的ROOT目录下,解压。
4.1 本地启动
本地测试mvn打完的包,通过startup.bat启动。如果系统有启动参数,则需要在catalina.bat(tomcat的bin目录下)中进行配置,配置格式如下:
set JAVA_OPTS="-DenvironmenTypeCode=kfTest"(这是准备金项目配置的用户系统的环境变量)
startup.bat启动。shutdown.bat关闭。
注意:本地启动tomcat时,若修改了catalina.bat,会导致idea项目无法启动:原因如下:
若修改了catalina.bat,则idea在启动项目时,C:\Users\Administrator\.IntelliJIdea2019.2\system\tomcat\Unnamed_Reserve_main_2\conf\Catalina\localhost目录下不会生成ROOT.xml文件,而idea是通过ROOT.xml中的配置<Context path="" docBase="F:\reserve\Reserve_main\target\reserve" />找到项目启动路径的。
4.2 Linux启动
在tomcat的bin目录下的catalina.sh文件里添加启动参数
export JAVA_OPTS="-DenvironmenTypeCode=kfTest"
在所有的矛盾中,要优先解决主要矛盾,其他矛盾也就迎刃而解。
不要做个笨蛋,为失去的郁郁寡欢,聪明的人,已经找到了解决问题的办法,或正在寻找。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通