项目结构:
POM.XML
<?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.scu.tgm.mavenpackge</groupId>
<artifactId>test</artifactId>
<version>1.1</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<pkg.name>
<![CDATA[TGM&&Counter.pkg]]>
</pkg.name>
</properties>
<build>
<plugins>
<!-- 使用assembly.xml打包 -->
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<appendAssemblyId>false</appendAssemblyId>
<descriptors>
<descriptor>src/main/resources/config/assembly.xml</descriptor>
</descriptors>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>attached</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- copy文件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<!-- ${project.build.directory}这个是tartget目录 -->
<!-- 这句话的意思是将${artifactId}-${version}.zip包里面的内容复制到 -->
<copy overwrite="true" tofile="${project.build.directory}/${pkg.name}"
file="${project.build.directory}/${artifactId}-${version}.zip"/>
</tasks>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.7</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-excelant</artifactId>
<version>3.14</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.7</version>
</dependency>
</dependencies>
</project>
assembly.xml
<?xml version="1.0" encoding="UTF-8"?>
<assembly
xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3 http://maven.apache.org/xsd/assembly-1.1.3.xsd">
<id>1.0</id>
<formats>
<!-- 这个是将下面的所有内容打成zip包里面的意思,生成文件位置在target下 -->
<!-- 生成的默认格式为${artifactId}-${version}.zip -->
<format>zip</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<!-- 打包想打的目录中的文件 -->
<fileSets>
<fileSet>
<directory>src/main/resources/model-conf</directory>
<outputDirectory>/conf</outputDirectory>
</fileSet>
<fileSet>
<directory>src/main/resources/probe-conf</directory>
<outputDirectory>/conf</outputDirectory>
</fileSet>
</fileSets>
<!-- 打包想打的文件 -->
<files>
<file>
<!-- ${project.build.directory}这个是target目录 -->
<!-- ${project.build.finalName}这个是该项目打的jar包名字,如果不确定就直接写死实际的文件名-->
<source>${project.build.directory}/${project.build.finalName}.jar</source>
<outputDirectory>/</outputDirectory>
<!--输出的别名-->
<destName>bie-ming-out.jar</destName>
</file>
<file>
<!-- 路径是与pom.xml为参照,平级的直接写名字,如src,target等-->
<source>keystore</source>
<outputDirectory>/</outputDirectory>
<destName>keystore-out</destName>
</file>
<file>
<!-- 路径是与pom.xml为参照,平级的直接写名字,如src,target等-->
<source>pom.xml</source>
<outputDirectory>/</outputDirectory>
<destName>pom-out.xml</destName>
</file>
</files>
<!-- 打包想打的jar -->
<dependencySets>
<!-- 这个是打包自己的程序代码 -->
<dependencySet>
<outputDirectory>/</outputDirectory>
<includes>
<!-- 这个是pom中的groupId:artifactId:jar -->
<include>com.scu.tgm.mavenpackge:test:jar</include>
<!-- 即使该依赖设置成provided也可以被打出来 -->
<include>org.apache.poi:poi:jar</include>
</includes>
</dependencySet>
<!-- 这个是将依赖打包,如果不想打包某个依赖就在dependency中添加<scope>provided</scope> -->
<dependencySet>
<useProjectArtifact>false</useProjectArtifact>
<outputDirectory>/lib</outputDirectory>
<outputFileNameMapping>${artifact.artifactId}.${artifact.extension}</outputFileNameMapping>
<unpack>false</unpack>
<useTransitiveDependencies>false</useTransitiveDependencies>
<!-- 打包运行时的jar -->
<scope>runtime</scope>
</dependencySet>
</dependencySets>
</assembly>