一些常用的Maven Plugin配置

来源:互联网 发布:万众创新 大众创业知乎 编辑:程序博客网 时间:2024/04/29 14:22

原文地址:

http://blog.csdn.net/mcai4gl2/article/details/12147947


Maven是一个常用的Java build Manager, 使用Maven可以很好的对Java Project的dependency进行管理. 这里我记录几个比较常用的Plugin配置. 

  1. 生成JAR打包文件:
    [html] view plaincopy
    1. <plugin>  
    2.                 <groupId>org.apache.maven.plugins</groupId>  
    3.                 <artifactId>maven-jar-plugin</artifactId>  
    4.                 <configuration>  
    5.                     <archive>  
    6.                         <manifestEntries>  
    7.                             <Class-Path>.</Class-Path>  
    8.                         </manifestEntries>  
    9.                     </archive>  
    10.                     <excludes>  
    11.                         <exclude>*.xml</exclude>  
    12.                     </excludes>  
    13.                 </configuration>  
    14.             </plugin>  


    这个打包文件将不会把一般的XML配置文件也打包, 这样, 我们可以在不修改JAR文件的情况下对配置文件进行修改.
  2. 拷贝XML配置文件:
    [html] view plaincopy
    1. <plugin>  
    2.                 <artifactId>maven-resources-plugin</artifactId>  
    3.                 <executions>  
    4.                     <execution>  
    5.                         <id>copy-resources</id>  
    6.                         <phase>package</phase>  
    7.                         <goals>  
    8.                             <goal>copy-resources</goal>  
    9.                         </goals>  
    10.                         <configuration>  
    11.                             <outputDirectory>target</outputDirectory>  
    12.                             <resources>  
    13.                                 <resource>  
    14.                                     <directory>src/main/resources</directory>  
    15.                                     <filtering>true</filtering>  
    16.                                 </resource>  
    17.                             </resources>  
    18.                         </configuration>  
    19.                     </execution>  
    20.                 </executions>  
    21.             </plugin>  
    这个plugin配置将把在src/main/resources文件夹下的配置文件都拷贝到target文件夹. 这种文件夹配置是IntelliJ下的默认配制.
  3. 拷贝所有的Dependency JARs:
    [html] view plaincopy
    1. <plugin>  
    2.                 <groupId>org.apache.maven.plugins</groupId>  
    3.                 <artifactId>maven-dependency-plugin</artifactId>  
    4.                 <executions>  
    5.                     <execution>  
    6.                         <id>copy-dependencies</id>  
    7.                         <phase>package</phase>  
    8.                         <goals>  
    9.                             <goal>copy-dependencies</goal>  
    10.                         </goals>  
    11.                         <configuration>  
    12.                             <outputDirectory>target/libs</outputDirectory>  
    13.                             <overWriteReleases>false</overWriteReleases>  
    14.                             <overWriteSnapshots>false</overWriteSnapshots>  
    15.                             <overWriteIfNewer>true</overWriteIfNewer>  
    16.                         </configuration>  
    17.                     </execution>  
    18.                 </executions>  
    19.             </plugin>  
    这个plugin将拷贝所有的Dependency JARs到target/libs文件夹下, 这样只要添加这个目录到classpath下, 我们就可以在没有IDE的环境的情况下直接运行我们的程序. 
  4. 生成运行文件:
    [html] view plaincopy
    1. <plugin>  
    2.                 <groupId>org.apache.maven.plugins</groupId>  
    3.                 <artifactId>maven-antrun-plugin</artifactId>  
    4.                 <executions>  
    5.                     <execution>  
    6.                         <id>manifest</id>  
    7.                         <phase>package</phase>  
    8.                         <goals>  
    9.                             <goal>run</goal>  
    10.                         </goals>  
    11.                         <configuration>  
    12.                             <tasks>  
    13.                                 <echo file="target/runjetty.sh">  
    14.                                     java -cp "libs/*:jettysetup-1.0-SNAPSHOT.jar" weblog.examples.jettysetup.JettyLauncher  
    15.                                 </echo>  
    16.                             </tasks>  
    17.                         </configuration>  
    18.                     </execution>  
    19.                 </executions>  
    20.             </plugin>  
    通过这个plugin配置, 我们将在target文件夹下生成一个叫runjetty.sh的文件来设置我们的classpath, 这样我们就可以通过这个脚本直接运行我们的程序了. 上面的这个例子是我在另一篇配置Jetty环境的文章中使用的, 整个的pom.xml配置文件可以在Github上找到.

通过上面的4个简单的配置, 我们可以实现对我们的项目进行打包, 同时拷贝配置文件, 和Dependency JAR文件, 生成执行脚本, 这个打包有几个优势:

  1. 打包文件不包含配置文件, 这样我们可以很方便得对配置文件进行修改
  2. 打包文件不包含Dependency JARs, 由于这些JAR并没有打包在我们的project jar文件里, 当我们有多个项目打包文件的时候, 这些JAR将会被共享.
当然, Maven并不是我们可以用的唯一一个build management tool, 我们还可以使用Ant, Ivy或者最近很流行的Gradle.

0 0
原创粉丝点击