在pom.xml中添加一下內容
<build>
<!--jar包名-版本號-->
<finalName>test-${project.version}</finalName>
<sourceDirectory>src/main/java</sourceDirectory>
<plugins>
<!-- 設置源文件編碼方式 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<defaultLibBundleDir>lib</defaultLibBundleDir>
<source>1.7</source>
<target>1.7</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<!-- 打包jar文件時,配置manifest文件,加入lib包的jar依賴 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<!--包含main方法主類-->
<mainClass>com.test.Main</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<!-- 拷貝依賴的jar包到lib目錄 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>
${project.build.directory}/lib
</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<!-- 解決資源文件的編碼問題 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.4</version>
<configuration>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<!-- 打包source文件爲jar文件(源碼,可選) -->
<plugin>
<artifactId>maven-source-plugin</artifactId>
<version>2.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>
</build>
然後運行以下命令:
mvn assembly:assembly
注:在網上查找資料時,網上都會加入以下內容,將resources文件拷貝出來,但是我加入以下內容,會將resources內容放置於jar同一目錄下,運行時會提示找不到resources資源文件。只要刪掉以下內容,就可以正常運行,resources也會放在jar裏面。
<resources>
<!-- 控制資源文件的拷貝 -->
<resource>
<directory>src/main/resources</directory>
<targetPath>${project.build.directory}</targetPath>
<!-- excludes和includes二選一使用即可 -->
<!-- 不包含的文件,支持通配符 -->
<excludes>
<exclude>*.txt</exclude>
</excludes>
<!-- 包含的文件,支持通配符 -->
<includes>
<include>*.properties</include>
</includes>
</resource>
</resources>