具体代码如下所示,
& lt; !——第一种打包方式(maven-jar-plugin),将依赖包和配置文件放到jar包外——比; & lt; build> & lt; sourceDirectory> src/main/java & lt; resources> & lt; resource> & lt; directory> src/main/resources & lt; !——将& lt; directory>目录下的文件打包到& lt; targetPath>下——比; & lt; targetPath> $ {project.build.directory} & lt;/targetPath> & lt; excludes> & lt; exclude> * */* .java & lt;/excludes> & lt;/resource> & lt;/resources> & lt; testSourceDirectory> src/测试/java & lt; testResources> & lt; testResource> & lt; directory> src/测试/resources & lt; filtering> true & lt; excludes> & lt; exclude> * */* .java & lt;/excludes> & lt;/testResource> & lt;/testResources> & lt; plugins> & lt; plugin> & lt; groupId> org.apache.maven.plugins & lt; artifactId> maven-compiler-plugin & lt; version> 2.3.2 & lt; configuration> & lt; source> 1.8 & lt;/source> & lt; target> 1.8 & lt;/target> & lt; encoding> UTF-8 & lt;/configuration> & lt;/plugin> & lt; !——将项目依赖包复制到& lt; outputDirectory>指定的目录下——比; & lt; plugin> & lt; groupId> org.apache.maven.plugins & lt; artifactId> maven-dependency-plugin & lt; executions> & lt; execution> & lt; id> copy-dependencies & lt; phase> package & lt; goals> & lt; goal> copy-dependencies & lt;/goals> & lt; configuration> & lt; outputDirectory> $ {project.build.directory}/lib & lt;/outputDirectory> & lt;/configuration> & lt;/execution> & lt;/executions> & lt;/plugin> & lt; !——将项目依赖包的路径(与上一项中的& lt; outputDirectory>对应)添加到类路径中,在 & lt; plugin> & lt; groupId> org.apache.maven.plugins & lt; artifactId> maven-jar-plugin & lt; configuration> & lt; archive> & lt; manifest> & lt; addClasspath> true & lt; classpathPrefix> lib/& lt;/classpathPrefix> & lt; mainClass> com.ctbri.echoRisk.ApplicationStart & lt;/manifest> & lt; manifestEntries> & lt; Class-Path>。/& lt;/Class-Path> & lt;/manifestEntries> & lt;/archive> & lt;/configuration> & lt;/plugin> & lt;/plugins> & lt;/build>
& lt; !——第二种打包方式(maven-shade-plugin),将依赖包和配置文件放到jar包内——比; & lt; build> & lt; directory> $ {project.basedir}/target & lt; finalName> $ {project.artifactId} - {project.version} & lt;美元/finalName> & lt; plugins> & lt; plugin> & lt; groupId> org.apache.maven.plugins & lt; artifactId> maven-surefire-plugin & lt; version> 2.21.0 & lt; configuration> & lt; skipTests> true & lt;/configuration> & lt;/plugin> & lt; plugin> & lt; groupId> org.apache.maven.plugins & lt; artifactId> maven-compiler-plugin & lt; version> 2.3.2 & lt; configuration> & lt; source> 1.8 & lt;/source> & lt; target> 1.8 & lt;/target> & lt; encoding> UTF-8 & lt; compilerArguments> & lt; extdirs> $ {project.basedir}/lib/& lt;/extdirs> & lt;/compilerArguments> & lt;/configuration> & lt;/plugin> & lt; plugin> & lt; groupId> org.apache.maven.plugins & lt; artifactId> maven-shade-plugin & lt; version> 3.1.0 & lt; executions> & lt; execution> & lt; phase> package & lt; goals> & lt; goal> shade & lt;/goals> & lt; configuration> & lt; minimizeJar> true & lt; filters> & lt; filter> & lt; artifact> *: * & lt;/artifact> & lt;/filter> & lt;/filters> & lt; transformers> & lt; !——往清单文件中写入主类是可执行包的必要条件.ManifestResourceTransformer可以轻松实现。——比; & lt;变压器 实现=皁rg.apache.maven.plugins.shade.resource.ManifestResourceTransformer”比; & lt; mainClass> com.ctbri.echoRisk.ApplicationStart & lt;/transformer> & lt; !——AppendingTransformer用来处理多个jar包中存在重名的配置文件的合并,尤其是春天——比; & lt;变压器 实现=皁rg.apache.maven.plugins.shade.resource.AppendingTransformer”比; & lt; resource> meta - inf/spring.handlersJava中Maven项目导出jar包配置的示例代码