您的位置:首页 > 编程语言 > Java开发

pom控制java项目的打包方式

2016-03-25 14:38 387 查看
maven在项目管理中有着重要的作用

有的时候我们需要将编写好的程序进行打包,并部署到环境上,有时可以使用java -cp并指定main函数的 的方式直接启动,

这样的功能在maven可以直接配置化控制,

这里只一个pom文件的例子,控制了对导出jar包的导出路径,jar包名称,主函数,依赖包的配置

并且一次可以导出多个jar包(指定不同的配置)

<project xmlns="http:maven.apache.org/POM/4.0.0" xmlns:xsi="http:www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http:maven.apache.org/POM/4.0.0 http:maven.apache.org/xsd/maven-4.0.0.xsd">

<modelVersion>4.0.0</modelVersion>

<!-- 本项目的分组、名称、版本控制 -->

<groupId>maven.test</groupId>

<artifactId>mytest</artifactId>

<version>0.0.1-SNAPSHOT</version>

<!-- 全局属性配置 设置编码为 utf8 -->

<properties>

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

</properties>

<!-- 项目中的所需的额外依赖列表。 -->

<dependencies>

<!-- 项目中依赖1。 -->

<!-- log4j 2 -->

<dependency>

<groupId>org.apache.logging.log4j</groupId>

<artifactId>log4j-core</artifactId>

<version>2.2</version>

</dependency>

<dependency>

<groupId>org.apache.logging.log4j</groupId>

<artifactId>log4j-api</artifactId>

<version>2.2</version>

</dependency>

<dependency>

<groupId>net.sf.json-lib</groupId>

<artifactId>json-lib</artifactId>

<version>2.4</version>

<classifier>jdk15</classifier>

</dependency>

</dependencies>

<!-- ************************************************************************************************* -->

<!-- 项目构建打包的配置 -->

<build>

<plugins>

<!-- 第一个插件 -->

<!-- 编译插件 -->

<plugin>

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

<artifactId>maven-compiler-plugin</artifactId>

<configuration>

<source>1.6</source>

<target>1.6</target>

<encoding>UTF-8</encoding>

</configuration>

</plugin>

<!-- 第二个插件 -->

<!-- 打包插件 -->

<plugin>

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

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

<version>2.3.1</version>

<!-- 控制打出的包 这里可以一次打出多个包,并指定main函数,和依赖的jar包路径 -->

<executions>

<!-- 指定生成第一个jar包的配置 -->

<execution>

<id>jar1</id>

<phase>compile</phase>

<goals>

<goal>jar</goal>

</goals>

<configuration>

<!-- 打包输出路径 -->

<outputDirectory>${basedir}/target/jar</outputDirectory>

<!-- 设置输出的jar包的文件名 -->

<finalName>hello</finalName>

<archive>

<!-- 定义jar包的主函数 -->

<manifest>

<mainClass>com.service.MainService</mainClass>

</manifest>

<!-- 指定依赖包的配置,不写就不指定 -->

</archive>

<!-- 打包去除掉的文件 -->

<excludes>

<exclude>config/**</exclude>

<exclude>config_offline/**</exclude>

<exclude>config_online/**</exclude>

</excludes>

</configuration>

</execution>

<!-- 指定生成第一个jar包的配置 -->

<execution>

<id>jar2</id>

<goals>

<goal>jar</goal>

</goals>

<phase>package</phase>

<configuration>

<!-- 打包输出路径 -->

<outputDirectory>${basedir}/target/jar</outputDirectory>

<!-- 设置输出的jar包的文件名 -->

<finalName>log</finalName>

<archive>

<!-- 定义jar包的主函数 -->

<manifest>

<mainClass>com.service.MainService</mainClass>

</manifest>

<!-- 指定依赖包的配置(就不用使用java -cp 的方式来添加依赖了) -->

<manifestEntries>

<Class-Path>

./lib/commons-beanutils-1.8.0.jar

./lib/commons-collections-3.2.1.jar

./lib/commons-lang-2.5.jar

./lib/commons-logging-1.1.1.jar

./lib/ezmorph-1.0.6.jar

./lib/json-lib-2.4-jdk15.jar

./lib/log4j-api-2.2.jar

./lib/log4j-core-2.2.jar

</Class-Path>

</manifestEntries>

</archive>

</configuration>

</execution>

</executions>

</plugin>

<!-- 第三个插件 -->

<!-- 依赖插件 控制依赖包的插件 -->

<plugin>

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

<artifactId>maven-dependency-plugin</artifactId>

<!-- 设置插件的执行方式 -->

<executions>

<execution>

<id>copy-dependencies</id>

<phase>package</phase>

<goals>

<goal>copy-dependencies</goal>

</goals>

<!-- 依赖包的输出路径 -->

<configuration>

<outputDirectory>${basedir}/target/jar/lib</outputDirectory>

<overWriteReleases>true</overWriteReleases>

<overWriteSnapshots>true</overWriteSnapshots>

<overWriteIfNewer>true</overWriteIfNewer>

</configuration>

</execution>

</executions>

</plugin>

</plugins>

</build>

</project>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: