maven常用配置

使用maven也有一年半了,总结一下maven的常见配置和命令
一、常用命令
` 注:插件2.2 之前 mvn archetype:create -DgroupId= -DartifactId=
插件2.3 mvn archetype:generate -DgroupId=com.unisoud -DartifactId=hello-lucene -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false 创建mvn项目

mvn archetype:generate -DgroupId=com.unisoud -DartifactId=hello-lucene -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false创建web项目

-DinteractiveMode=false 以非交互模式创建项目
注:archetype:create在插件2.3以后就被废弃了

mvn package 生成target目录,编译、测试代码,生成测试报告,生成jar/war文件
mvn compile 编译
mvn test 编译并测试
mvn clean 清空生成的文件
mvn -Dwtpversion=1.0 eclipse:eclipse 生成Wtp插件的Web项目
mvn -Dwtpversion=1.0 eclipse:clean 清除Eclipse项目的配置信息(Web项目)
mvn eclipse:eclipse 将项目转化为Eclipse项目
mvn test 运行单元测试
mvn test -Dtest= 运行指定单元测试
mvn -e 显示详细错误 信息.
mvn deploy 发布项目到私服

———————-这些是很少用到的命令——————————–
mvn validate 验证工程是否正确,所有需要的资源是否可用。
mvn test-compile 编译项目测试代码。
mvn integration-test 在集成测试可以运行的环境中处理和发布包。
mvn verify 运行任何检查,验证包是否有效且达到质量标准。
mvn generate-sources 产生应用需要的任何额外的源代码,如xdoclet。
mvn site 生成项目相关信息的网站

mvn jetty:run 运行项目于jetty上

1、如何发布第三方jar包到私服?

mvn deploy:deploy-file -DgroupId=com -DartifactId=client -Dversion=0.1.0 -Dpackaging=jar -Dfile=d:\client-0.1.0.jar -DrepositoryId=maven-repository-inner -Durl=ftp://xxxxxxx/opt/maven/repository/

2、如何发布第三方jar包到本地仓库
mvn install:install-file -DgroupId=com -DartifactId=client -Dversion=0.1.0 -Dpackaging=jar -Dfile=d:\client-0.1.0.jar

3、我的程序有些单元测试有错误,如何忽略测试步骤?

给mvn增加命令行参数 -Dmaven.test.skip=true 或者 -DskipTests=true

4、如何在下载jar时同时下载源码和javadoc?

给mvn增加命令行参数: -DdownloadSources=true 下载源码 -DdownloadJavadocs=true 下载javadoc`

二、常用的pom文件插件配置
1、打包maven项目时同时打出依赖包
a.使用assembly自定义打包形式

<build>
                <plugins>
                    <plugin>
                        <version>2.5.2</version>
                        <artifactId>maven-assembly-plugin</artifactId>
                        <configuration>
                            <descriptor>src/main/resources/assembly.xml</descriptor>
                        </configuration>
                        <executions>
                            <execution>
                                <id>make-assembly</id>
                                <phase>package</phase>
                                <goals>
                                    <goal>single</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>

assembly.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
  <id>jar-with-dependencies</id>
  <formats>
    <format>jar</format>
  </formats>
  <includeBaseDirectory>false</includeBaseDirectory>
  <dependencySets>
    <dependencySet>
      <unpack>false</unpack>
      <scope>runtime</scope>
      <useProjectArtifact>true</useProjectArtifact>
    </dependencySet>
  </dependencySets>
</assembly>

注意:unpack 默认为fasle,默认将所有依赖的第三方包打成一个大jar包,为true则意味着打包时依赖的第三方jar会打到一个文件夹下。

b.利用 maven-dependency-plugin 插件打包

<plugin>  
                        <groupId>org.apache.maven.plugins</groupId>  
                        <artifactId>maven-dependency-plugin</artifactId>
                        <version>2.8</version> 
                        <executions>  
                            <execution>  
                                <id>copy</id>  
                                <phase>package</phase>  
                                <goals>  
                                    <goal>copy-dependencies</goal>  
                                </goals>  
                                <configuration>
                                    <outputDirectory>  
                                        ${project.build.directory}/${project.artifactId}-${project.version}-lib  
                                    </outputDirectory>  
                                </configuration>  
                            </execution>  
                        </executions>  
                    </plugin>

如果只是配置插件,依赖的jar包可以被打出,但不会被添加到.classpath文件当中,要想添加到.classpath文件中还需要下面插件配置.

<plugin>  
                        <groupId>org.apache.maven.plugins</groupId>  
                        <artifactId>maven-jar-plugin</artifactId>
                        <version>2.4</version> 
                        <configuration>  
                            <archive>  
                                <manifest>  
                                    <addClasspath>true</addClasspath>  
                                    <classpathPrefix>${project.artifactId}-${project.version}-lib/</classpathPrefix>   
                                </manifest>  
                            </archive>  
                        </configuration>  
                    </plugin> 

2、生成可运行jar包
1 中的打包方式打出了依赖包,我们在他基础自上在.classpath文件中指定 mainClass 即可生成可运行jar包 。 在 1.b 的 maven-jar-plugin 的 manifest节点下添加配置

<mainClass>com.xxx.xxx.MainClassJavaFile</mainClass> 

3、发布jar同时发布源码和javadoc
每当我们发布一个release版本到私服我需要同时发布源码和javadoc,此时需要如下配置

<plugins>
                    <plugin>  
                        <artifactId>maven-source-plugin</artifactId>
                        <version>2.4</version>
                        <executions>  
                            <execution>  
                                <id>attach-sources</id>  
                                <phase>deploy</phase>
                                <goals>  
                                    <goal>jar</goal>  
                                </goals> 
                            </execution>  
                        </executions>  
                    </plugin>  
                    <plugin>  
                        <artifactId>maven-javadoc-plugin</artifactId>  
                        <version>2.10.1</version>
                        <executions>  
                            <execution>  
                                <id>attach-javadocs</id>  
                                <phase>deploy</phase> 
                                <goals>  
                                    <goal>jar</goal>  
                                </goals>
                            </execution>  
                        </executions>  
                    </plugin>  
                    <plugin>  
                        <!-- explicitly define maven-deploy-plugin after other to force exec   
                            order -->  
                        <artifactId>maven-deploy-plugin</artifactId>  
                        <version>2.8.2</version>
                        <executions>  
                            <execution>  
                                <id>deploy</id>  
                                <phase>deploy</phase>  
                                <goals>  
                                    <goal>deploy</goal>  
                                </goals>  
                            </execution>  
                        </executions>  
                    </plugin>
                </plugins>

3、指定jdk的编译级别和编码格式以及编译内存、可fork模式

<plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>2.5.1</version>
        <configuration>
          <fork>true</fork>
          <encoding>${project.build.sourceEncoding}</encoding>
          <source>1.7</source>
          <target>1.7</target>
          <meminitial>512m</meminitial>
          <maxmem>1024m</maxmem>
        </configuration>
      </plugin>

上面是一些基本常用的配置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值