maven分开打包jar文件和依赖jar包和资源文件


<properties>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
  <java.version>1.8</java.version>
</properties>


<
build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <!-- 解决资源文件的编码问题 --> <configuration> <encoding>UTF-8</encoding> </configuration> <executions> <execution> <id>copy-resources</id> <phase>validate</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <!-- 把资源文件打包到工程目录下,与下面的打包不包含资源文件对应,也可以是其它目录,比方conf,这样写${project.build.directory}/conf --> <outputDirectory>${project.build.directory}</outputDirectory> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> </resources> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <manifest> <!--看这篇https://segmentfault.com/a/1190000004677931 --> <addClasspath>true</addClasspath> <classpathPrefix>lib/</classpathPrefix> <mainClass>com.xxx.xxxxx.xxxx</mainClass><!-- main函数入口 --> <addDefaultImplementationEntries>true</addDefaultImplementationEntries> <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries> </manifest> <manifestEntries> <Permissions>${Permissions}</Permissions> <Caller-Allowable-Codebase>${Caller-Allowable-Codebase}</Caller-Allowable-Codebase> <Class-Path>./</Class-Path> </manifestEntries> </archive> <!-- 打jar包时不把resource下的资源文件打包进去 --> <excludes> <exclude>**/*.xml</exclude> <exclude>**/*.properties</exclude> </excludes> </configuration> </plugin> <!-- 解决资源文件的编码问题 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <configuration> <source>${java_source_version}</source> <target>${java_target_version}</target> <encoding>${file_encoding}</encoding> <showDeprecation>true</showDeprecation> <showWarnings>true</showWarnings> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <executions> <execution> <id>copy-dependencies</id> <phase>package</phase> <configuration> <overWriteReleases>false</overWriteReleases> <overWriteSnapshots>false</overWriteSnapshots> <overWriteIfNewer>true</overWriteIfNewer> <!-- 将引用依赖的jar包打在lib目录下 --> <outputDirectory> ${project.build.directory}/lib </outputDirectory> </configuration> <goals> <goal>copy-dependencies</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
原文地址:https://www.cnblogs.com/shamo89/p/9713065.html