注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

网易杭州 QA Team

务实 专注 分享 做有态度的QA

 
 
 
 
 

日志

 
 

maven零碎笔记1  

来自qingcai   2012-10-12 12:50:32|  分类: 环境配置 |举报 |字号 订阅

  下载LOFTER 我的照片书  |
    初次接触maven,也遇到了不少问题,就目前所遇到的一些问题和解决方法小记一下。
    提到maven,不得不说它的两个核心的配置文件:pom.xml和setting.xml。pom.xml位于创建的项目文件夹内,setting.xml位于maven包解压后conf文件夹内。这里就小结一下pom.xml中的一些插件配置上所遇到的问题:
   
1.maven打包
    之前代码是写在src/test/java/目录下,在执行maven打包的时候,虽然生成了指定的文件,但是文件里面的内容却是空的,没有测试源码。查明原因,是因为maven默认情况下只打包src/main/java/目录下的源码,而测试代码是写在src/test/java/目录下,第一次接触maven又不太了解,一时没找到解决办法,就用了一个笨办法,直接把src/test/java/目录下的代码直接移植到了src/main/java/目录下。
    可以通过配置maven-jar-plugin将测试类打包:
<plugin>  
<groupId>org.apahce.maven.plugins<groupId>  
<artifactId>maven-jar-plugin</artifactId>  
<version>2.2</version>  
<executions>  
<execution>  
<goals>  
<goal>test-jar</goal>  
</goals>  
</execution>  
</executions>  
</plugin>
    maven-jar-plugin 有两个目标,分别是test和test-jar,前者通过Maven的内置绑定在default生命周期的package阶段运行,作用是对项目主代码进行打包,而后者没有内置绑定,其默认绑定生命周期阶段为 package。打包后可以声明依赖,在声明一个测试包构件依赖时,type元素的值需要设定为test-jar:
<dependency>
  <groupId></groupId>  
<artifactId></artifactId>  
<version></version>  
<type>test-jar</type>  
<scope>test</scope>
</dependency>

2.maven编译
    在执行编译的时候一直编译失败,提示以下错误:
annotations are not supported in -source 1.3
(use -source 5 or higher to enable annotations) 
@Parameters( {"host"})
    后来查到解决办法就是配置一个插件maven-compiler-plugin。maven-compiler-plugin的compile目标用来编译位于src/main/java/目录下的主源码,这个插件其实是一个默认配置,不过还是要谨慎的配置jdk编译版本跟字符集设置,因为compile默认使用jdk1.3来编译,这个版本不支持注解,通过设定compiler插件中的参数可以指定JDK版本为1.6,解决这个问题。
    Xml代码 
     <plugins>
          <plugin> 
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-compiler-plugin</artifactId> 
              <configuration> 
                 <source>1.6</source> 源代码编译版本
                <target>1.6</target> 目标平台编译版本
                <encoding>UTF8</encoding>字符集编码
              </configuration> 
           </plugin>
      </plugins>
    compiler插件能解决2个问题:
    第一: maven 2.1默认使用jdk 1.3来编译,这个版本不支持注解,compiler插件可以指定JDK版本为1.6,解决这个问题。
    第二:windows平台默认使用GBK编码,如果工程编码为utf8,也需要在compiler插件中指出,否则按GBK编码,也会出问题。

3.maven执行打包时跳过测试
    maven打包过程中会自动执行测试,而我的本意是打包过程不执行测试,打包完毕后通过脚本来控制测试执行。通过maven-surefire-plugin这个插件可以来解决这个问题。
    maven-surefire-plugin支持JUnit和TestNG。默认情况下,maven-surefire-plugin的test目标会自动执行测试源码路径下所有以Test开头、Test或TestCase结尾的的Java类。要想跳过测试,在命令行加入参数skipTests就可以了。
    Xml代码 
    <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12.3</version>
<configuration>
<skip>true</skip>
<testFailureIgnore>true</testFailureIgnore>
</configuration>
    <plugin>

    以上是maven在打包过程中遇到的一些问题,做个小记。后续将继续进一步了解和学习maven相关知识...
  评论这张
 
阅读(667)| 评论(3)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016