您的位置:首页 > 其它

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

2014-03-26 20:17 513 查看
一、 将classes打成Jar,之后打到War中。

1.在pom的开始部分定义整个工程打war包

<artifactId>mtop_prj</artifactId>

<packaging>war</packaging>

<name>mtop_prj</name>

2.在plugin配置部分,定义将classes下的打为jar,放在lib目录下

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-jar-plugin</artifactId>

<configuration>

<encoding>UTF-8</encoding>

</configuration>

<executions>

<execution>

<phase>generate-sources</phase>

<goals>

<goal>jar</goal>

</goals>

<configuration>

<classesDirectory>${project.basedir}/src/main/webapp/WEB-INF/classes</classesDirectory>

<finalName>testJar</finalName>

<outputDirectory>${project.basedir}/src/main/webapp/WEB-INF/lib</outputDirectory>

</configuration>

</execution>

</executions>

</plugin>

这个参数的配置<phase>generate-sources</phase>,需要了解Maven的生命周期来设置,如果设置成package,只会打Jar放到lib下并不能打到War包中。

二、 将classes打成Jar,之后工程打jar包。

1. 定义将工程打jar包(默认配置)

<groupId>com.mercur.vas</groupId>

<artifactId>mvas_statistics_prj</artifactId>

<packaging>jar</packaging>

<name>mvas_statistics_prj</name>

2. 在plugin中定义一个execution先将classes/com目录打jar放到lib目录,再定义一个execution,id设置为default-jar(同默认jar的id),过滤掉classes/com目录

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-jar-plugin</artifactId>

<executions>

<!-- 定义在prepare-package时将classes/com打jar -->

<execution>

<phase>prepare-package</phase>

<goals>

<goal>jar</goal>

</goals>

<configuration>

<classesDirectory>${project.basedir}/src/main/webapp/WEB-INF/classes/</classesDirectory>

<finalName>mvas_top_server</finalName>

<outputDirectory>${project.basedir}/src/main/webapp/WEB-INF/classes/lib/</outputDirectory>

<includes>

<include>com/**</include>

</includes>

</configuration>

</execution>

<!-- 定义execution,设置id为 default-jar,同默认配置的id,在package时过滤掉classes/com -->

<execution>

<id>default-jar</id>

<phase>package</phase>


<goals>

<goal>jar</goal>

</goals>

<configuration>

<classesDirectory>${project.basedir}/src/main/webapp/WEB-INF/classes/</classesDirectory>

<excludes>

<exclude>com/</exclude>

</excludes>

</configuration>

</execution>

</executions>

</plugin>

maven-assembly-plugin配置:可以打多种包

</plugin>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-assembly-plugin</artifactId>

<configuration>

<descriptors>

<descriptor>src/main/assembly.xml</descriptor>

</descriptors>

</configuration>

<executions>

<execution>

<id>zip-release</id>

<phase>package</phase>

<goals>

<goal>single</goal>

</goals>

</execution>

</executions>

</plugin>

assembly.xml:

<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">
<formats>

<format>zip</format>

</formats>

<includeBaseDirectory>false</includeBaseDirectory>

<fileSets>

<fileSet>

<directory>${project.basedir}/src/main/webapp/WEB-INF/classes/</directory>

<includes>

<include>**</include>

</includes>

<excludes>

<exclude>com/</exclude>

</excludes>

<outputDirectory>/</outputDirectory>

</fileSet>

</fileSets>

</assembly>

Maven 设置默认profile,在profile部分增加 :

<activation>

<activeByDefault>true</activeByDefault>

</activation>

Maven 三大生命周期

1. clean周期

pre-clean:准备清理

clean:真正的清理工作

post-clean:执行清理后的一些后续工作

2. default周期:

validate:验证

initialize:初始化配置

generate-sources:生成源代码编译目录

process-sources:处理项目主资源文件,复制资源文件到outputclasspath

generate-resources:生成资源目录

process-resources:处理资源文件

complie:编译源代码

process-classes:处理编译后文件

generate-test-sources:生成测试目录

process-test-sources:处理项目测试资源文件,复制测试资源文件到outputclasspath

generate-test-resources:生成测试资源文件

process-test-resources:处理测试资源文件

test-compile:编译测试代码

process-test-classes:处理测试代码

test:单元测试运行测试代码

prepare-package:打包前的准备

package:将编译好的代码打包成为jar或者war或者ear等等

pre-integration-test:准备整体测试

integration-test:整体测试

post-integration-test:为整体测试收尾

verify:验证

install:安装到本地Maven库

deploy:将最终包部署到远程Maven仓库

3. site周期:

pre-site:准备生成站点

site:生成站点及文档

post-site:站点收尾

site-deploy:将生成的站点发布到服务器上

转自:http://uktar.blog.sohu.com/269421895.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: