pom.xml基础配置: 
maven中,最让我迷惑的还是那一堆配置! 
就拿这个属性配置来说:

  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>默认还是可以识别的!

插件配置:

资源配置插件:

  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编译版本跟字符集设置:

  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文件:

  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项目!

测试插件:

  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:

  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相应的插件:

  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包,那就需要这个插件:

  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中定时部署:

  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文件:

  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中补充相关内容:

  1. <role rolename="manager-gui"/>
  2. <role rolename="magager-script"/>
  3. <user username="admin" password="123456" roles="manager-gui,manager-script" />

这是Tomat7的配置,在Tomcat6中应该是:

  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>:强制字符集编码!

插件命令:

  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中:

Maven 基础配置的更多相关文章

  1. Maven基础配置—本地Maven配置

    1.下载客户端 通过http://maven.apache.org/download.cgi#下载Maven本地客户端. 我下载的是apache-maven-3.2.5-bin.zip,在D盘解压. ...

  2. Maven基础配置

    重要网址 Maven主页:http://maven.apache.org/ Maven central repository:http://search.maven.org/ Maven aliyun ...

  3. Maven基础配置—上传jar包到私服

    一.配置 在需要上传的工程中的pom.xml文件中加入下面的配置 <distributionManagement> <repository> <id>release ...

  4. Maven基础配置--nexus私服配置

    登录nexus私服后台,按照下图1-3的顺序进行添加仓库: 其中步骤3有三种仓库类型(Type)进行选择 1. Hosted Repository:本地仓库,在私服服务器上存放用户自行上传的jar包: ...

  5. eclipse基础环境配置和svn、maven的配置以及maven的安装

    安装eclipse和基础配置 第一步:解压eclipse安装包,直接解压就可以,绿色版安装 第二步:启动eclipse,注意这里的eclipse需要依赖jdk,并且版本需要匹配,否则启动会出 现问题. ...

  6. Hibernate 基础配置及常用功能(三)

    本章重点讲述Hibernate对象的三种状态以及如何配置二级缓存 有关Hibernate的三种状态如何相互转换网上都能查到,官方文档描述的也比较详细.这里主要是针对几个重点方法做代码演示. 一.状态转 ...

  7. maven基础知识

    1.maven基础知识 1.1maven坐标 maven坐标通常用冒号作为分割符来书写,像这样的格式:groupId:artifactId:packaging:version.项目包含了junit3. ...

  8. Maven基础知识和环境搭建

    基本概念和生命周期 Maven是现在流行的构建自动化工具,提供了软件构建过程中全生命周期的管理. 基础目录结构 基础目录结构如下: 根目录:存放pom.xml 和所有的子目录 ${basedir}/s ...

  9. SpringMVC最基础配置

    SpringMVC和Struts2一样,是前后台的一个粘合剂,struts2用得比较熟悉了,现在来配置一下SpringMVC,看看其最基础配置和基本使用.SpriingMVC不是太难,学习成本不高,现 ...

随机推荐

  1. linux 脚本 逻辑关系的写法及区别

    今天总结一下linux shell中逻辑关机表达方式. 逻辑与的表达:1).if [ $xxx=a -a $xx=b ] 2).if [ $xxx=a ] && [  $xx=b ]逻 ...

  2. android设备唯一码的获取,cpu号,mac地址

    抄自http://blog.csdn.net/hpccn/article/details/7872141 开发Android应用中,我们常常需要设备的唯一码来确定客户端. Android 中的几中方法 ...

  3. 【EasyUI学习-1】MyEclipse+easyui学习官方Demo

    介绍 easyui的介绍,网上很多,这里就不进行介绍了. easyUI获取 官网: http://www.jeasyui.com/  下载地址:http://www.jeasyui.com/downl ...

  4. (unittest之装饰器(@classmethod)) 让多个测试用例在一个浏览器里面跑 的方法

    一.装饰器 1.用setUp与setUpClass区别 setup():每个测试case运行前运行teardown():每个测试case运行完后执行setUpClass():必须使用@classmet ...

  5. 1001 A+B Format (20 分)

    1001 A+B Format (20 分) Calculate a+b and output the sum in standard format -- that is, the digits mu ...

  6. Linux命令详解-ftp服务器配置

    1.ftp服务器配置 1.ftp安装: rpm –qa | grep ftp 2.查看安装内容: rpm-ql |more 3.启动ftp服务: service vsftpd start 4.配置文件 ...

  7. 如何干净的清除Slave同步信息

    MySQL> show master status; +------------------+-----------+--------------+------------------+---- ...

  8. win10 停留在启动画面

    这是由于部分电脑的主板不支持快速启动造成的,所以把快速启动功能关闭掉即可.具体操作步骤如下:控制面板--硬件和声音--电源选项--选择电源按钮的功能--选择“更改当前不可用的设置”,然后把“启用快速启 ...

  9. Axure8.1.0.3372 注册码

    Axure8.1.0.3372 注册码 转载:http://blog.csdn.net/cslucifer/article/details/79355007 Koshy wTADPqxn3KChzJx ...

  10. LRU的理解与Java实现

    简介 LRU(Least Recently Used)直译为"最近最少使用".其实很多老外发明的词直译过来对于我们来说并不是特别好理解,甚至有些词并不在国人的思维模式之内,比如快速 ...