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
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
相关文章推荐
- maven在打war包时将资源文件打包到classes目录下
- maven 配置及打包依赖,打包war到指定目录
- maven在打war包时将资源文件打包到classes目录下
- maven打包排除排除指定文件(war,jar)
- maven 配置及打包依赖,打包war到指定目录
- eclipse中maven web工程打包成war缺少lib目录
- Maven之——使用本地jar包并打包进war包里面的方法
- myeclipse+maven 把maven的jar包导入到指定的目录下
- Maven引入本地Jar包并打包进War包中
- MAVEN 编译打包测试 指定本地jar
- Maven 打包 jar 、war 文件时,不将 pom.xml 等打包进包中
- maven 如何打包本地jar包到war中
- 使用maven打包jar或者war
- MAVEN 编译打包测试 指定本地jar
- IDEA MAVEN 项目 打包文件到指定目录
- 浅谈maven的jar包和war包区别 以及打包方法
- 构建工具-Maven-使用maven-assembly-plugin将依赖打包进jar并指定JDK版本
- 解决WEB-INF/lib目录下的jar包无法用maven打包
- web项目传classes目录项目正常,打包成jar不能运行。
- Spring4集成quartz,Maven打包为可执行jar或者war