maven 配置及打包依赖,打包war到指定目录

Maven多模块项目打包配置 这种项目打包需要在根目录打包,它会根据依赖关系自动进行打包 项目打包没有class文件,一个class也没有, 把maven-compiler-plugin的版本提高到3.7不行, 添加编译时运行参数增大内存也不行, 目录结构也是遵循规则 1.src/main/java的结构 2./src与/test与pom.xml一个层级 最后还是配置的问题 在出问题的模块pom.xml添加如下配置 需要打包的目录都需要指定 java文件位置 resource文件的位置 外部jar包的位置 <project& 阅读详情

打jar包时把依赖打到jar

  1.     <plugins>  
  2.               
  3.         <plugin>  
  4.   <artifactId>maven-assembly-plugin</artifactId>  
  5.   <configuration>  
  6.     <descriptorRefs>  
  7.       <descriptorRef>jar-with-dependencies</descriptorRef>  
  8.     </descriptorRefs>  
  9.   <archive>  
  10.     <manifest>  
  11.       <mainClass></mainClass>  
  12.     </manifest>  
  13.   </archive>  
  14.   </configuration>  
  15.   <executions>  
  16.     <execution>  
  17.       <id>make-assembly</id>  
  18.       <phase>package</phase>  
  19.       <goals>  
  20.         <goal>single</goal>  
  21.       </goals>  
  22.    </execution>  
  23.   </executions>  
  24. </plugin>  
  25.                
  26.         </plugins>  

把依赖和jsp等文件放在指定目录(直接是项目,不是war)

  1. <plugin>  
  2.             <groupId>org.apache.maven.plugins</groupId>    
  3.              <artifactId>maven-war-plugin</artifactId>  
  4.              <configuration>  
  5.                <webappDirectory>D:/apache-tomcat-7.0.64/webapps/bj12385</webappDirectory>  
  6.                <warSourceDirectory>D:/apache-tomcat-7.0.64/webapps/bj12385</warSourceDirectory>  
  7.              </configuration>  
  8.             </plugin>  


以下下为互联网上搜的


就拿这个属性配置来说: 


Xml代码   收藏代码
  1. <properties>  
  2.     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  
  3.     <spring.framework.version>3.0.5.RELEASE</spring.framework.version>  
  4.     <cxf.version>2.3.2</cxf.version>  
  5.     <tiles.version>2.2.2</tiles.version>  
  6. </properties>  

我需要让整个项目统一字符集编码,就需要设定 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> ;如果我需要让spring统一版本号,可以设置这么个变量 <spring.framework.version>3.0.5.RELEASE</spring.framework.version> ,当然,maven不会那么乖乖的自动识别这些配置。当然, <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 默认还是可以识别的! 


插件 配置: 

资源配置 插件: 
Xml代码   收藏代码
  1. <plugin>  
  2.     <groupId>org.apache.maven.plugins</groupId>  
  3.     <artifactId>maven-resources-plugin</artifactId>  
  4.     <version>2.4.3</version>  
  5.     <configuration>  
  6.         <encoding>${project.build.sourceEncoding}</encoding>  
  7.     </configuration>  
  8. </plugin>  

xml、properties文件都是资源文件,编码的时候遇到中文总要进行转码!用什么编码?UTF-8,那就记得强制 <encoding>${project.build.sourceEncoding}</encoding> ,虽然 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 默认可以识别,但是我还是觉得不放心。 

这些插件有时候即便是不配置,它也是默认存在的! 

编译 插件: 
这个插件就是个默认配置,不过我还是谨慎的配置了jdk编译版本跟字符集设置: 
Xml代码   收藏代码
  1. <plugin>  
  2.     <groupId>org.apache.maven.plugins</groupId>  
  3.     <artifactId>maven-compiler-plugin</artifactId>  
  4.     <version>2.0.2</version>  
  5.     <configuration>  
  6.         <source>1.6</source>  
  7.         <target>1.6</target>  
  8.         <encoding>${project.build.sourceEncoding}</encoding>  
  9.     </configuration>  
  10. </plugin>  

<source>1.6</source> :源代码编译版本; 
<target>1.6</target> :目标平台编译版本; 
<encoding>${project.build.sourceEncoding}</encoding> :字符集编码。 

如果你用eclipse建立maven项目时,新建的项目往往JDK版本很低——1.5!怎么办?修改settings.xml文件: 
Xml代码   收藏代码
  1. <profile>  
  2.     <id>jdk-1.6</id>  
  3.     <activation>  
  4.         <activeByDefault>true</activeByDefault>  
  5.         <jdk>1.6</jdk>  
  6.     </activation>  
  7.     <properties>  
  8.         <maven.compiler.source>1.6</maven.compiler.source>  
  9.         <maven.compiler.target>1.6</maven.compiler.target>  
  10.         <maven.compiler.compilerVersion>1.6</maven.compiler.compilerVersion>  
  11.     </properties>  
  12. </profile>  

eclipse会很听话的构建一个JDK1.6版本的maven项目!  

测试 插件: 
Xml代码   收藏代码
  1. <plugin>  
  2.     <groupId>org.apache.maven.plugins</groupId>  
  3.     <artifactId>maven-surefire-plugin</artifactId>  
  4.     <version>2.7.2</version>  
  5.     <configuration>  
  6.         <parallel>methods</parallel>  
  7.         <threadCount>10</threadCount>  
  8.         <argLine>-Dfile.encoding=UTF-8</argLine>  
  9.         <!-- <skip>true</skip> -->  
  10.         <!-- <testFailureIgnore>true</testFailureIgnore> -->  
  11.     </configuration>  
  12. </plugin>  

<parallel>methods</parallel> :方法级并发; 
<threadCount>10</threadCount> :是线程数,当前是10; 
<argLine>-Dfile.encoding=UTF-8</argLine> :就是参数命令行,这一行很关键。测试插件有个小问题,它不依赖项目的字符集设置,它依赖于操作系统。如果你用命令行操作,看中文提示测试结果还好。但在win+eclipse(UTF-8设置)下,那就是乱码了; 
<skip>true</skip> 是忽略测试; 
<testFailureIgnore>true</testFailureIgnore> :忽略测试异常; 

测试报告 插件: 
要测试,就要有报告,知晓测试覆盖率,这就需要clover: 
Xml代码   收藏代码
  1. <plugin>  
  2.     <groupId>maven</groupId>  
  3.     <artifactId>maven-clover-plugin</artifactId>  
  4.     <version>2.4.2</version>  
  5.     <configuration>  
  6.         <encoding>${project.build.sourceEncoding}</encoding>  
  7.     </configuration>  
  8. </plugin>  

安全起见,我还是要强制写遍字符集编码设置: <encoding>${project.build.sourceEncoding}</encoding>  

可以使用  mvn cobertura:cobertura  产生测试覆盖率报告! 

eclipse 插件: 
在eclipse下进行maven项目开发,还是需要eclipse相应的插件: 
Xml代码   收藏代码
  1. <plugin>  
  2.     <groupId>org.apache.maven.plugins</groupId>  
  3.     <artifactId>maven-eclipse-plugin</artifactId>  
  4.     <version>2.8</version>  
  5.     <configuration>  
  6.         <wtpmanifest>true</wtpmanifest>  
  7.         <wtpapplicationxml>true</wtpapplicationxml>  
  8.         <wtpversion>2.0</wtpversion>  
  9.         <downloadSources>true</downloadSources>  
  10.         <downloadJavadocs>true</downloadJavadocs>  
  11.     </configuration>  
  12. </plugin>  

<wtpmanifest>true</wtpmanifest> :产生manifest文件 
<wtpapplicationxml>true</wtpapplicationxml> :产生web.xml文件 
<wtpversion>2.0</wtpversion> :这是eclipse里面的wtp版本 
<downloadSources>true</downloadSources> :下载源代码 
<downloadJavadocs>true</downloadJavadocs> :下载源码文档 

虽然这么配置了,但是由maven项目转为eclipse的wtp类型的项目时,所产生的文件根本没有实际意义。web.xml文件的servlet版本很低,也许是我没有配置。对应的xml字符集的头标识也没有。 

war包 插件: 
既然是web项目,就需要打war包,那就需要这个插件: 
Xml代码   收藏代码
  1. <plugin>  
  2.     <groupId>org.apache.maven.plugins</groupId>  
  3.     <artifactId>maven-war-plugin</artifactId>  
  4.     <version>2.1.1</version>  
  5.     <configuration>  
  6.         <encoding>${project.build.sourceEncoding}</encoding>  
  7.         <warName>platform</warName>  
  8.         <webappDirectory>${project.build.directory}/platform</webappDirectory>  
  9.         <warSourceDirectory>WebContent</warSourceDirectory>  
  10.     </configuration>  
  11. </plugin>  

<encoding>${project.build.sourceEncoding}</encoding> 强制字符集编码 
<warName>platform</warName> war包名字——platform.war 
<webappDirectory>${project.build.directory}/platform</webappDirectory> 产生war前,用于存放构建war包的目录——target/platform。 
<warSourceDirectory>WebContent</warSourceDirectory> :我把web工程搞成了eclipse下的WTP类型。我不喜欢maven产生的webapp目录,更喜欢WebContent! 

tomcat 插件: 
我习惯于用tomcat作为JSP容器,对jetty多少有点陌生。不但如此,我还通过在Bamboo中配置命令让这个应用可以在tomcat中定时部署: 
Xml代码   收藏代码
  1. <plugin>  
  2.     <groupId>org.codehaus.mojo</groupId>  
  3.     <artifactId>tomcat-maven-plugin</artifactId>  
  4.     <configuration>  
  5.         <charset>${project.build.sourceEncoding}</charset>  
  6.         <url>http://localhost:8080/manager</url>  
  7.         <server>tomcat.server</server>  
  8.         <path>/platform</path>  
  9.         <port>8080</port>  
  10.         <warFile>${project.build.directory}/platform.war</warFile>  
  11.         <warSourceDirectory>WebContent</warSourceDirectory>  
  12.         <uriEncoding>${project.build.sourceEncoding}</uriEncoding>  
  13.     </configuration>  
  14. </plugin>  

<charset>${project.build.sourceEncoding}</charset> :字符集强制编码 
<url>http://localhost:8080/manager/text</url> :我这里已经使用了Tomcat7,如果是Tomcat6就不需要 /text ! 
<server>tomcat.server</server> 这是个用户名设置,需要配置maven的settings.xml文件: 
Xml代码   收藏代码
  1. <servers>  
  2.     <server>  
  3.         <id>tomcat.server</id>  
  4.         <username>admin</username>  
  5.         <password>123456</password>  
  6.     </server>  
  7. </servers>  

别急,这时候还没完! 
在tomcat的tomcat-users.xml中补充相关内容: 
Xml代码   收藏代码
  1. <role rolename="manager-gui"/>  
  2. <role rolename="magager-script"/>  
  3. <user username="admin" password="123456" roles="manager-gui,manager-script" />  

这是Tomat7的配置,在Tomcat6中应该是: 
Xml代码   收藏代码
  1. <role rolename="manager"/>  
  2. <user username="admin" password="123456" roles="manager" />  


<port>8080</port> :运行时端口 
<path>/platform</path> :是运行时路径——http://host:port/platform 
<warFile>${project.build.directory}/platform.war</warFile> :我们以war包方式发布,需要指定war包路径。
<warSourceDirectory>WebContent</warSourceDirectory> :同时要指定war包源码路径。这里我使用eclipse的WTP类型工程WebContent目录。 
<uriEncoding>${project.build.sourceEncoding}</uriEncoding> :强制字符集编码! 

插件命令: 
Shell代码   收藏代码
  1. #Run Tomcat  
  2. mvn tomcat:run  
  3. #Stop Tomcat  
  4. #Deploy Tomcat  
  5. mvn tomcat:deploy  
  6. #Undeploy Tomcat  
  7. mvn tomcat:undeploy  
  8. #Redeploy Tomcat  
  9. mvn tomcat:redeploy  

对于我来说,我最常用的就是 mvn tomcat:run  跟  mvn tomcat:redeploy ,而且我会把他们配置在eclipse中: 

 

加上个-X,我可以清楚的知道每一个插件的配置,以及详细的Debug信息! 
web项目中代码引用了本地包,又需要使用maven打war包时,pom的配置方法 背景说明: 1. web项目,使用MVN打WAR包         2. 代码中有使用本地包; POM配置方法: 1. 本地包编译:       2. 将lib下的包拷贝到WEB-INF\lib下 打包: mvn clean install -Dmaven.test.skip=true         mvn package -Dmaven.test.s 阅读详情

相关推荐

springcloud微服务多模块打包war部署到tomcat

springcloud微服务多模块打包war部署到tomcat 背景: house-parent # 父工程 house-common # 子工程 house-db house-shiro house-user 前三个子工程都是基本的Java项目 最后一个是springboot应用 目前还未集成springcloud的组件,但是已经导入了依赖包 目前的技术选型有:springboot+springcloud+springcloud alibaba + shiro+jwt+redis+swagger 需求:

weixin_43273005的博客 2930

maven

pom.xml基础配置:  maven中,最让我迷惑的还是那一堆配置:  就拿这个属性配置来说:  Xml代码   properties>       project.build.sourceEncoding>UTF-8project.build.sourceEncoding>       spring.framework.version>3.0.5.REL

aaa1aaaaa的专栏 1289

tomcat-maven-plugin:Maven插件来部署目录Webapp

Tomcat Maven插件 一般特征 该库是一个Maven插件,允许您使用Tomcat Manager在Tomcat中部署Maven Target Webapp目录(maven-war-plugin插件的属性webappDirectory)。 易于使用,只需在“ settings.xml ”文件中添加“ pluginGroup ”并启动插件。 在中央Maven存储库中可用。 与Java 6和Maven 3版本兼容。 与Tomcat 5兼容。 快速安装(从Tomcat 7开始) 添加位于Tomcat的conf目录中的tomcat-users.xml文件,以“ manager-script ”角色访问“ admin ”用户。 < role xss=removed> < user username = " admin " password =

Clover 的使用方法解读

http://docs.atlassian.com/maven-clover2-plugin/2.5.1/ https://confluence.atlassian.com/display/CLOVER/Clover-for-Maven+2+and+3+Installation+Guide Clover: 当测试代码执行时,代码覆盖系统会收集哪些语句已被执行的信息,然后将这些信息作为基本

心静思远 1万+

LaTeX小白必看:5分钟搞定GB/T 7714-2005参考文献格式(Texmaker+BibTeX实战)

本文为LaTeX初学者提供了使用Texmaker编辑器和BibTeX工具链,快速实现GB/T 7714-2005参考文献格式的实战指南。文章详细解析了从获取gbt7714-2005.bst样式文件、编写.bib数据库到四步编译流程的核心步骤,并附有常见问题解决方案,帮助用户高效、准确地完成学术论文的参考文献排版。

weixin_29295541的博客 338

从零开始利用MATLAB进行FPGA设计(一):建立脉冲检测模型的Simulink模型2

上一期分析了MATLAB的黄金算法原理,这一期进行Simulink模块分析。

WZT725的博客 2086

使用maven-clover2-plugin测试代码覆盖率

首先给两个官网的地址: http://docs.atlassian.com/maven-clover2-plugin/2.3.1/usage.html http://maven.apache.org/archives/maven-1.x/plugins/clover/properties.html大家可以先看一下 下面我先说一下我对clover的理解:当测试代码执行时,代码覆盖系统会收集哪些语

2852

高频功率放大器的设计实现

摘 要 随着无线通信技术的高速发展,市场对射频电路的需求越来越大,同时对射频电路的性能要求也越来越高。高频功率放大器是位于无线发射级末端的重要部件,为了弥补信号在无线传输过程中的衰耗,要求发射机具有较大功率的输出,通信距离越远,要求的输出功率越大。在高频范围内,为了获得足够大的高频输出功率,就要采用高频功率放大器。 本次课程设计的高频功率放大器的技术指标包括输出功率、效率、功率增益、由于高频频功率放大器的输出功率比较大,耗能比较多,所以工作效率就显得比较重要。本课程设计的高频功率放大器电路由两极功率放大器

qq_43543515的博客 3万+

Maven打包期依赖war包/Zip包 并解压至指定目录的pom配置

首先配置依赖,引入需要依赖的war包和zip包: com.huawei.mateinfo kewen-common-war 0.0.1 war com.huawei.mateinfo kewen-common-war-template 0.0.1 zip 在使用maven-dependenc

江湖小虾米 6532

scDeepCluster_pytorch代码解读与文章理解

论文:Clustering single-cell RNA-seq data with a。

qq_34179307的博客 912

摄像机实时接入分析平台视频分析网关AI智能分析智慧营业厅方案

通过智能化的改造,可以提高营业厅的运营效率,降低运营成本,同时提升客户体验和安全保障。

EasyDarwin开源社区技术博客 703

maven 配置及打包依赖,打包war到指定目录

打jar包时把依赖打到jar maven-assembly-plugin jar-with-dependencies make-assembly package single

FREEDOM 1万+

autoware 激光-相机联合标定

autoware进行激光-相机联合标定 ~~~ 刚开始进行激光-相机联合标定的时候,出现了不少问题,在此记录一下整体标定流程,以防忘记。在此,特别感谢佳明师弟,在录制数据集时提供的帮助。 ~~~ 0.系统配置: Ubuntu18.04系统 ROS Melodic opencv 3.2.0 vlp-16 一.安装autoware 这部分网上教程挺多的,但我在编译的过程中仍存在不少bug,唉~_~。 二.安装calibration_camera_lidar,从a...

nuo112的博客 1万+

java 指定依赖包目录,Maven将依赖包、jar/war包及配置文件输出到指定目录

目录写在前面​ 最近遇到一个朋友遇到一个项目需要将 maven 的依赖包和配置文件分开打包然后用脚本执行程序。这样的好处在于可以随时修改配置文件内容及查看 jar 包。如果将所有打成一个 jar 包就会有个问题(例如:修改数据库连接位置需要重新打包这样就失去了使用配置文件的有优点)。本文利用maven插件将依赖包、jar/war包及配置文件输出到指定目录1. 使用 maven-dependency...

weixin_42298969的博客 926

virtuoso如何导出def?

在DEF Out界面,填写def name,library name以及cell name ,cell view既layout,把Output "Floating Shapes" into SPECIAL NETS Section勾上,OK即可。2)在要导出的layout界面选中PAD和prBoundary(shift+左键),快捷键C copy到空cell里,这时需要调整copy过来的object坐标,让两边prBoundary的坐标相同。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?

m0_61544122的博客 2304

ICC2:使用analyze_lib_cell_placement检查lib cell的pass rate

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?在place之前需要使analyze_lib_cell_placement命令去检查lib cell在当前的site row/power plan/legalize设置的环境下能够正常place和legalize。下面分享一个脚本去报告pass rate低于2%的lib cell。

m0_61544122的博客 673

Maven将依赖包、jar/war包及配置文件输出到指定目录

使用Maven插件将依赖包 jar包 war包及配置文件输出到指定目录 写在前面 ​ 最近遇到一个朋友遇到一个项目需要将 maven 的依赖包和配置文件分开打包然后用脚本执行程序。这样的好处在于可以随时修改配置文件内容及查看 jar 包。如果将所有打成一个 jar 包就会有个问题(例如:修改数据库连接位置需要重新打包这样就失去了使用配置文件的有优点)。 本文利用Maven插件将依赖包、jar...

weixin_30314793的博客 907

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Springboot使用Maven将本地依赖打包到war包

1、环境Springboot项目,打包工具使用Maven2、需要WAR包部署到国产中间件3、项目依赖了一些JAr包,非Maven库中依赖。

青语的博客 2051

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

解决maven打包打不进lib下的第三方jar包问题

针对maven仓库依赖之外的第三方jar包,在打包时常常发现打包后没有包含这个jar针对这个问题经过多次尝试总结如下 1、打成jar 如果maven最终达成jar包,首先建个资源文件夹将你的jar放进去 然后在pom文件里加入  &lt;build&gt;    &lt;plugins&gt;   &lt;plugin&gt;                 &lt;groupId&gt;...

木兰缀露博客 1万+

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

maven 将依赖包打入war中

maven-assembly-plugin src/main/resources/assembly.xml make-assembly package

kkgbn的博客 2215

Visual Studio Code (VSCode)使用之Maven管理依赖的项目启动

文章目录前言一、VSCode需要安装的插件二、使用步骤1.引入库2.读入数据总结 前言 本文主要介绍在VScode中使用tomcat启动由maven管理依赖的(javaweb)项目。若使用的是其他开发工具,可以跳过了~ 由于公司的某些原因,不得不摒弃IDEA(懂的都懂)。在VSCode和Eclipse中徘徊,大学期间就使用的Eclipse,考虑到之前的使用感受,决定还是试试VSCode好了【手动🐶】。 下面的内容基于**M1(Pro)**芯片的MacOS系统,JDK 1.8、Tomcat 9.0.58、M

qq_41099935的博客 1万+

Maven -- 将引用的本地jar文件打进war包里

我们在做maven项目开发中有时候引用了本地第三方包,例如: <dependency> <groupId>org.artofsolving.jodconverter</groupId> <artifactId>jodconverter-core</artifac...

weixin_30780649的博客 162

maven 如何打包本地jar包到war中

当我们需要引用本地jar包的时候,往往采用的时候以下方法 &lt;dependency&gt; &lt;groupId&gt;com.wong&lt;/groupId&gt; &lt;artifactId&gt;smart&lt;/artifactId&gt; &lt;version&gt;1.0&lt;...

Wong'S博客 461

Maven引入本地Jar包并打包进War包中

maven打包加入依赖包以及加入本地依赖包的方法Maven引入本地Jar包并打包进War包中1.概述在平时的开发中,有一些Jar包因为种种原因,在Maven的中央仓库中没有收录,所以就要使用本地引入的方式加入进来。2. 拷贝至项目根目录项目根目录即pom.xml文件所在的同级目录,可以在项目根目录下创建文件夹lib,如下图所示: 这4个Jar包是识别网页编码所需的包。3. 配置pom.xml,依赖...

lizhou828的专栏 366
上一篇: Maven实战(三)Eclipse构建Maven项目
下一篇: Nginx Tomcat负载均衡
focusjava
博客等级 码龄14年 127粉丝 528原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值