pom控制java项目的打包方式

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>







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值