maven的打包主要涉及几个插件:
maven-jar-plugin maven-dependency-plugin
配置参数:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.2.2</version>
<configuration>
<archive>
<manifest>
<!-- 是否绑定依赖,将外部jar包依赖加入到classPath中 -->
<addClasspath>true</addClasspath>
<!-- 创建一个可执行的jar文件需要相应地配置主类 -->
<mainClass>com.fyd.main.Main</mainClass>
<!-- 定义Classpath目录前缀 -->
<classpathPrefix>lib/</classpathPrefix>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.1.1</version>
<!--执行标签-->
<executions>
<execution>
<!--execution标签的唯一标识符-->
<id>copy-dependencies</id>
<!--execution标签要执行的Maven构建生命周期阶段-->
<phase>package</phase>
<goals>
<!--执行目标的名称-->
<goal>copy-dependencies</goal>
</goals>
<!--执行目标的配置信息-->
<configuration>
<!--项目构件输出目录,其中${project.build.directory}默认为 target/-->
<outputDirectory>${project.build.directory}/lib</outputDirectory>
<!--Release检查overWriteRelease值(默认值为false)。如果为true,则将强制覆盖-->
<overWriteReleases>false</overWriteReleases>
<!--快照检查overWriteSnapshots值(默认值=false)。如果为true,则将强制覆盖-->
<overWriteSnapshots>false</overWriteSnapshots>
<!--如果此值为true,则仅当源比目标更新时(或者目标中不存在),才会复制插件-->
<overWriteIfNewer>true</overWriteIfNewer>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>