楔子
Maven 打包为可运行jar ,pom文件配置。
注意
在IDEA 运行是,相关配置文件会被打包到 \target\classes目录下,添加下面这个会使配置文件进入
指定的位置,而不是 \target\classes。会造成程序提示找不到 配置文件等。
<!-- && 在IDE中运行要把这个给注释掉,因为IDEA打包 默认路劲是 classes ,有下面行会把配置文件转移到其他目录 -->
<!--<targetPath>${project.build.directory}/config</targetPath>-->
打包命令(第三方jar单独拷贝出来放在lib目录)
mvn clean dependency:copy-dependencies -DoutputDirectory=target/lib package
<?xml version="1.0" encoding="UTF-8"?>
<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>com.zhuzi.camel
</groupId>
<artifactId>camelStudy
</artifactId>
<version>1.0-SNAPSHOT
</version>
<properties>
<project.build.sourceEncoding>UTF-8
</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8
</project.reporting.outputEncoding>
<maven.compiler.encoding>UTF-8
</maven.compiler.encoding>
<apache.common.version>2.8.0
</apache.common.version>
<camel.version>2.23.0
</camel.version>
<scala.version>2.11.12
</scala.version>
</properties>
<dependencies>
<dependency>
<groupId>junit
</groupId>
<artifactId>junit
</artifactId>
<version>4.12
</version>
<scope>test
</scope>
</dependency>
<dependency>
<groupId>org.apache.camel
</groupId>
<artifactId>camel-core
</artifactId>
<version>${camel.version}
</version>
</dependency>
</dependencies>
<build>
<resources>
<resource>
<directory>src/main/java
</directory>
<includes>
<include>**/*.xml
</include>
</includes>
</resource>
<resource>
<directory>src/main/resources
</directory>
<includes>
<include>**/*.properties
</include>
<include>**/*.xml
</include>
<include>**/**
</include>
</includes>
</resource>
</resources>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins
</groupId>
<artifactId>maven-dependency-plugin
</artifactId>
<version>3.0.1
</version>
<executions>
<execution>
<id>copy
</id>
<phase>package
</phase>
<goals>
<goal>copy-dependencies
</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/lib
</outputDirectory>
<overWriteReleases>false
</overWriteReleases>
<overWriteSnapshots>false
</overWriteSnapshots>
<overWriteIfNewer>true
</overWriteIfNewer>
<includeScope>compile
</includeScope>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins
</groupId>
<artifactId>maven-compiler-plugin
</artifactId>
<version>3.2
</version>
<configuration>
<source>1.8
</source>
<target>1.8
</target>
<encoding>UTF-8
</encoding>
<showWarnings>true
</showWarnings>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins
</groupId>
<artifactId>maven-jar-plugin
</artifactId>
<version>3.0.2
</version>
<configuration>
<archive>
<manifest>
<mainClass>com.zhuzi.camel.App2
</mainClass>
<addClasspath>true
</addClasspath>
<useUniqueVersions>false
</useUniqueVersions>
<classpathPrefix>lib/
</classpathPrefix>
</manifest>
<manifestEntries>
<Class-Path>config/
</Class-Path>
</manifestEntries>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins
</groupId>
<artifactId>maven-resources-plugin
</artifactId>
<version>3.1.0
</version>
<configuration>
<encoding>${project.build.sourceEncoding}
</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo
</groupId>
<artifactId>exec-maven-plugin
</artifactId>
<version>1.6.0
</version>
<executions>
<execution>
<goals>
<goal>exec
</goal>
</goals>
</execution>
</executions>
<configuration>
<executable>java
</executable>
<arguments>
<argument>-classpath
</argument>
<classpath>
</classpath>
<argument>com.zhuzi.camel.App2
</argument>
</arguments>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins
</groupId>
<artifactId>maven-source-plugin
</artifactId>
<version>3.0.1
</version>
<configuration>
<attach>true
</attach>
<encoding>UTF-8
</encoding>
</configuration>
<executions>
<execution>
<phase>compile
</phase>
<goals>
<goal>jar
</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
</build>
<repositories>
<repository>
<id>nexus-aliyun
</id>
<name>Nexus aliyun
</name>
<url>http://maven.aliyun.com/nexus/content/groups/public
</url>
<releases>
<enabled>true
</enabled>
<updatePolicy>always
</updatePolicy>
</releases>
<snapshots>
<enabled>true
</enabled>
<updatePolicy>always
</updatePolicy>
</snapshots>
</repository>
</repositories>
</project>
其他博文
[Maven]Maven构建可执行的jar包(包含依赖jar包)