maven常见变量配置

一、变量-自定义变量及内置变量

1.自定义变量

[java]  view plain  copy
  1. <properties>    
  2.     <project.build.name>tools</project.build.name>    
  3.     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>    
  4. </properties>     
2.内置变量

[java]  view plain  copy
  1. ${basedir} 项目根目录  
  2. ${project.build.directory} 构建目录,缺省为target  
  3. ${project.build.outputDirectory} 构建过程输出目录,缺省为target/classes  
  4. ${project.build.finalName} 产出物名称,缺省为${project.artifactId}-${project.version}  
  5. ${project.packaging} 打包类型,缺省为jar  
  6. ${project.xxx} 当前pom文件的任意节点的内容  
二、常见插件配置

1.编译插件

[java]  view plain  copy
  1. <plugin>    
  2.    <groupId>org.apache.maven.plugins</groupId>    
  3.    <artifactId>maven-compiler-plugin</artifactId>    
  4.    <configuration>    
  5.        <source>1.6</source>    
  6.        <target>1.6</target>    
  7.        <encoding>${project.build.sourceEncoding}</encoding>    
  8.    </configuration>    
  9. </plugin>  
       source: 源代码编译版本;  
       target: 目标平台编译版本;  
       encoding: 字符集编码

2.设置资源文件的编码方式 

[java]  view plain  copy
  1. <plugin>    
  2.    <groupId>org.apache.maven.plugins</groupId>    
  3.    <artifactId>maven-resources-plugin</artifactId>    
  4.    <version>2.4.3</version>    
  5.    <executions>    
  6.        <execution>    
  7.            <phase>compile</phase>    
  8.        </execution>    
  9.    </executions>    
  10.    <configuration>    
  11.        <encoding>${project.build.sourceEncoding}</encoding>    
  12.    </configuration>    
  13. </plugin>   
      xml、properties文件都是资源文件,编码的时候遇到中文总要进行转码!用什么编码?UTF-8,那就记得强制 <encoding>${project.build.sourceEncoding}</encoding> 
3.自动拷贝jar包到target目录
[java]  view plain  copy
  1. <plugin>    
  2.    <groupId>org.apache.maven.plugins</groupId>    
  3.    <artifactId>maven-dependency-plugin</artifactId>    
  4.    <version>2.6</version>    
  5.    <executions>    
  6.        <execution>    
  7.            <id>copy-dependencies</id>    
  8.            <phase>compile</phase>    
  9.            <goals>    
  10.                <goal>copy-dependencies</goal>    
  11.            </goals>    
  12.            <configuration>    
  13.                <!-- ${project.build.directory}为Maven内置变量,缺省为target -->    
  14.                <outputDirectory>${project.build.directory}/lib</outputDirectory>    
  15.                <!-- 表示是否不包含间接依赖的包 -->    
  16.                <excludeTransitive>false</excludeTransitive>    
  17.                <!-- 表示复制的jar文件去掉版本信息 -->    
  18.                <stripVersion>true</stripVersion>    
  19.            </configuration>    
  20.        </execution>    
  21.    </executions>    
  22. </plugin>     
   关于maven-dependency-plugin:用得最多的几个操作:copy, copy-dependencies和它们对应的unpack, unpack-dependencies

   描述:copy 和 unpack操作是由要拷某个包,这个包需要具体指定要拷哪个包,与当前工程的依赖没有关系。这两者区别-是否解压

               copy-dependencies和unpack-dependencies,但是它是用来拷当前工程的依赖包的。这两者区别-是否解压

   参考链接:http://liugang594.iteye.com/blog/2093082

4.生成源代码jar包

[java]  view plain  copy
  1. <plugin>    
  2.    <artifactId>maven-source-plugin</artifactId>    
  3.    <version>2.1</version>    
  4.    <configuration>    
  5.        <!-- <finalName>${project.build.name}</finalName> -->    
  6.        <attach>true</attach>    
  7.        <encoding>${project.build.sourceEncoding}</encoding>    
  8.    </configuration>    
  9.    <executions>    
  10.        <execution>    
  11.            <phase>compile</phase>    
  12.            <goals>    
  13.                <goal>jar</goal>    
  14.            </goals>    
  15.        </execution>    
  16.    </executions>    
  17. </plugin>     
5.将项目打成jar包
[java]  view plain  copy
  1. <plugin>    
  2.    <groupId>org.apache.maven.plugins</groupId>    
  3.    <artifactId>maven-jar-plugin</artifactId>    
  4.    <version>2.4</version>    
  5.    <configuration>    
  6.        <archive>    
  7.            <manifest>    
  8.                <!-- 告知 maven-jar-plugin添加一个 Class-Path元素到 MANIFEST.MF文件,以及在Class-Path元素中包括所有依赖项 -->    
  9.                <addClasspath>true</addClasspath>    
  10.                <!-- 所有的依赖项应该位于 lib文件夹 -->    
  11.                <classpathPrefix>lib/</classpathPrefix>    
  12.                <!-- 当用户使用 lib命令执行JAR文件时,使用该元素定义将要执行的类名 -->    
  13.                <mainClass>com.zhengtian.tools.service.phone.MobilePhoneTool</mainClass>    
  14.            </manifest>    
  15.        </archive>    
  16.    </configuration>    
  17. </plugin>     
      在将项目打成jar包时,有时会需要将项目打成可以直接运行的jar包,因此就需要将项目依赖的jar包也打入jar包中,此时需要在Eclipse上安装例外一个插件,用来打可执行jar包,详情见链接 http://zheng12tian.iteye.com/blog/1765626   

更多maven配置详见:https://my.oschina.net/zh119893/blog/276090

关于maven-assembly-plugin的使用

“assembly”

参考链接:http://blog.csdn.net/WANGYAN9110/article/details/38646677

pom中配置

[java]  view plain  copy
  1. <plugin>  
  2.       <artifactId>maven-assembly-plugin</artifactId>  
  3.       <version>2.4.1</version>  
  4.       <executions>  
  5.           <execution>  
  6.               <id>make-zip</id>  
  7.               <!-- 绑定到package生命周期阶段上 -->  
  8.               <phase>package</phase>  
  9.               <goals>  
  10.                   <!-- 绑定到package生命周期阶段上 -->  
  11.                   <goal>single</goal>  
  12.               </goals>  
  13.               <configuration>  
  14.                   <descriptors> <!--描述文件路径-->  
  15.                       <descriptor>src/assembly/assembly.xml</descriptor>  
  16.                   </descriptors>  
  17.               </configuration>  
  18.           </execution>  
  19.       </executions>  
  20.   </plugin>  

assembly.xml配置
[java]  view plain  copy
  1. <assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"  
  2.       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  3.       xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">  
  4.   <id>distribution</id>  
  5.   <formats>  
  6.       <format>zip</format>  
  7.   </formats>  
  8.   <fileSets>  
  9.       <fileSet>  
  10.           <directory>${project.basedir}\src\main\resources</directory>  
  11.           <outputDirectory>\</outputDirectory>  
  12.       </fileSet>  
  13.       <fileSet>  
  14.           <directory>${project.basedir}\src\bin</directory>  
  15.           <outputDirectory>\bin</outputDirectory>  
  16.       </fileSet>  
  17.   </fileSets>  
  18.   <dependencySets>  
  19.       <dependencySet>  
  20.           <useProjectArtifact>true</useProjectArtifact>  
  21.           <outputDirectory>lib</outputDirectory>  
  22.           <!-- 将scope为runtime的依赖包打包到lib目录下。 -->  
  23.           <scope>runtime</scope>  
  24.       </dependencySet>  
  25.   </dependencySets>  
  26. lt;/assembly>  

猜你喜欢

转载自blog.csdn.net/u011402896/article/details/80670338