使用Maven assembly打多个自定义包及War包简介

转载 2013年12月02日 09:57:52
一.Maven基本命令

创建java项目:
mvn archetype:create -DarchetypeGroupId=org.apache.maven.archetypes -DgroupId=com.mycompany.app -DartifactId=myProject

创建web项目:
mvn archetype:create -DarchetypeArtifactId=maven-archetype-webapp -DgroupId=com.mycompany.app  -DartifactId=myProject

增加eclipse项目信息:
cd myProject
mvn eclipse:eclipse

编译:
mvn compile

运行测试:
mvn test

打包(java项目打出jar;web项目打出war):
mvn package


安装jar到本地仓库:
mvn install


清除生成的文件:
mvn clean

========================================================
War 简单介绍
Xml代码  收藏代码
  1. <plugin>  
  2.                 <groupId>org.apache.maven.plugins</groupId>  
  3.                 <artifactId>maven-war-plugin</artifactId>  
  4.                 <configuration>  
  5.                     <!-- 释放将项目的类文件打成jar放到lib目录中。  
  6.                 打成jar的好处是:只修改class时,可以只更新jar。 -->  
  7.                     <archiveClasses>true</archiveClasses>  
  8.                     <webResources>  
  9.                         <!--  
  10.                             src/main/resources是默认的资源目录。  
  11.                             当archiveClasses=true时,resources中的文件资源会被打到jar中;  
  12.                             当archiveClasses=false时,resources中的文件资源在war的根目录。  
  13.                         -->  
  14.                         <resource>  
  15.                             <!-- config作为source folder,不会被打到jar中。 -->  
  16.                             <directory>src/main/config</directory>  
  17.                             <targetPath>WEB-INF/classes</targetPath>  
  18.                             <filtering>true</filtering>  
  19.                         </resource>  
  20.                     </webResources>  
  21.                     <archive>  
  22.                         <manifest>  
  23.                             <addDefaultImplementationEntries>true</addDefaultImplementationEntries>  
  24.                             <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>  
  25.                         </manifest>  
  26.                         <manifestEntries>  
  27.                             <Built-On>${timestamp}</Built-On>  
  28.                         </manifestEntries>  
  29.                     </archive>  
  30.                 </configuration>  
  31.                 <executions>  
  32.                     <execution>  
  33.                         <id>generate-manifest</id>  
  34.                         <phase>prepare-package</phase>  
  35.                         <goals>  
  36.                             <goal>manifest</goal>  
  37.                         </goals>  
  38.                     </execution>  
  39.                 </executions>  
  40.             </plugin>  

需要的属性配置:
Xml代码  收藏代码
  1. <properties>  
  2.         <maven.build.timestamp.format>yyyy-MM-dd HH:mm:ss</maven.build.timestamp.format>  
  3.         <timestamp>${maven.build.timestamp}</timestamp>  
  4. </properties>  


========================================================
Assembly打多个自定义包

首先了解两个参数:构建目录/最终项目构建名称
${project.build.directory}/${project.build.finalName}
对应target\myProject

打多个包
每个包有自己的执行器,都绑定到某个生命周期上,有各自的描述符文件。
Pom中配置如下:
Xml代码  收藏代码
  1. <plugin>  
  2.                 <groupId>org.apache.maven.plugins</groupId>  
  3.                 <artifactId>maven-assembly-plugin</artifactId>  
  4.                 <version>2.2-beta-5</version>  
  5.                 <executions>  
  6.                     <execution>  
  7.                         <id>make-jar</id><!-- 随便一个名字 -->  
  8.                         <phase>package</phase><!-- 绑定到package生命周期阶段上 -->  
  9.                         <goals>  
  10.                             <goal>single</goal><!-- 只运行一次 -->  
  11.                         </goals>  
  12.                         <configuration>  
  13.                             <skipAssembly>false</skipAssembly><!-- 跳过这个执行器 -->  
  14.                             <!-- 自定义输出目录(finalName为最终项目构建名称) -->  
  15.                             <!--  
  16.                                 <outputDirectory>  
  17.                                 ${project.build.directory}/${project.build.finalName}/WEB-INF/lib  
  18.                                 </outputDirectory>  
  19.                             -->  
  20.                             <!-- 描述符文件 -->  
  21.                             <descriptors>  
  22.                                 <descriptor>src/main/assembly/jar.xml</descriptor>  
  23.                             </descriptors>  
  24.                         </configuration>  
  25.                     </execution>  
  26.                                         <execution>  
  27.                         <id>make-zip</id>  
  28.                         <phase>package</phase>  
  29.                         <goals>  
  30.                             <goal>single</goal>  
  31.                         </goals>  
  32.                         <configuration>  
  33.                             <skipAssembly>true</skipAssembly>  
  34.                             <descriptors>  
  35.                                 <descriptor>src/main/assembly/zip.xml</descriptor>  
  36.                             </descriptors>  
  37.                         </configuration>  
  38.                     </execution>  
  39.   
  40.                 </executions>  
  41.             </plugin>  


jar.xml文件
Xml代码  收藏代码
  1. <assembly  
  2.     xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"  
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.     xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">  
  5.     <id>jar-release</id>  
  6.     <formats>  
  7.         <format>jar</format>  
  8.     </formats>  
  9.     <includeBaseDirectory>false</includeBaseDirectory>  
  10.     <fileSets>  
  11.         <fileSet>  
  12.             <directory>${project.build.directory}/classes</directory>  
  13.             <includes>  
  14.                 <include>**</include>  
  15.             </includes>  
  16.             <excludes>  
  17.                 <exclude>server.properties</exclude>  
  18.             </excludes>  
  19.             <outputDirectory>/</outputDirectory>  
  20.         </fileSet>  
  21.     </fileSets>  
  22. </assembly>  


zip.xml文件
Xml代码  收藏代码
  1. <assembly  
  2.     xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"  
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.     xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">  
  5.       
  6.     <id>release</id>  
  7.     <formats>  
  8.         <format>zip</format>  
  9.     </formats>  
  10.     <includeBaseDirectory>false</includeBaseDirectory>    
  11.     <fileSets>  
  12.         <fileSet>  
  13.             <directory>${project.build.directory}/${project.build.finalName}</directory>  
  14.             <includes>  
  15.                 <include>**</include>  
  16.             </includes>     
  17.             <outputDirectory>/project</outputDirectory>  
  18.         </fileSet>  
  19.           
  20.     </fileSets>  
  21. </assembly> 

maven打包时跳过测试

运行mvn install时跳过Test   方法一: [...] org.apache.maven.plugins ...
  • thc1987
  • thc1987
  • 2015年01月06日 14:34
  • 79011

使用maven-assembly-plugin打包,assembly的语法介绍(同时打多个包、排除依赖包、文件更改别名、自定义路径)

使用maven打包时,maven-jar-plugin插件会在target目录下生成可执行的xxx-0.0.1-SNAPSHOT.jar文件,但是一般生产程序部署时需要打包自定义的格式包,这种情况就可...
  • u013174217
  • u013174217
  • 2016年11月23日 09:22
  • 9364

通过maven插件assembly打war包

1、pom.xml配置 maven-assembly-plugin src/main/assembly/assembly.xml make-assembly ...
  • running_snail_
  • running_snail_
  • 2016年08月03日 15:09
  • 1972

Maven打包:将classes打成Jar,之后打到War中(或打成jar),过滤指定目录。

一、 将classes打成Jar,之后打到War中。 1.在pom的开始部分定义整个工程打war包    mtop_prj     war    mtop_prj 2.在plug...
  • ikaituozhe
  • ikaituozhe
  • 2014年03月26日 20:17
  • 10669

使用Maven为一个项目生成多个Jar包,将一个目录打成jar包

今天又学了一招使用Maven为一个项目生成多个Jar包,或者说将某一个目录打成一个jar包。 原文地址 虽然在Java平台下,各种构建工具如Maven、Gradle、SBT已经得到了较为广泛地运用...
  • tiantiandjava
  • tiantiandjava
  • 2015年03月17日 17:10
  • 17608

maven打包含有多个main程序的jar包及运行方式

pom.xml                                     org.apache.maven.plugins                 mav...
  • shenqiqian
  • shenqiqian
  • 2015年02月26日 17:46
  • 697

使用maven-assembly-plugin打包zip工程

使用Maven对Web项目进行打包,默认为war包;但有些时候,总是希望打成zip包(亦或其他压缩包,类似tomcat的那种目录结构,直接执行bin/startup.sh就可以),maven-war-...
  • mn960mn
  • mn960mn
  • 2015年06月28日 14:48
  • 4836

maven打可运行jar,包含依赖jar,且打成zip包

maven 插件 添加: org.apache.maven.plugins maven-jar-plugin 2.4 ...
  • luo1990
  • luo1990
  • 2016年09月09日 10:23
  • 1000

Maven 项目打包需要注意到的那点事儿

关于 Maven 打 war 包《使用 Eclipse 的 Maven 2 插件开发一个 JEE 项目》详细介绍了如何在 Eclipse 使用 Maven 新建一个 JEE 项目并对其进行断点跟踪调试...
  • defonds
  • defonds
  • 2015年01月28日 17:04
  • 115860

Maven实战(五)---两个war包的调用

开篇前提 为什么要用两个war包的调用?          因为我们Maven项目每个war包都是一条线,前台用easyui,而每一条线都要引用easyui相关的js、css,还有一些其他的样式。为了...
  • liutengteng130
  • liutengteng130
  • 2015年01月19日 20:35
  • 9690
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用Maven assembly打多个自定义包及War包简介
举报原因:
原因补充:

(最多只允许输入30个字)