配置如下:
<build>
<plugins>
<!--打包自己的项目为jar并放入lib目录,不包含依赖。-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.2.2</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<!--MANIFEST.MF 中 Class-Path 加入前缀-->
<classpathPrefix>./lib/</classpathPrefix>
<!--jar包不包含唯一版本标识-->
<useUniqueVersions>false</useUniqueVersions>
<mainClass>com.zkbl.AuthApplication</mainClass>
</manifest>
<manifestEntries>
<!--<Class-Path>./config/</Class-Path>-->
<Class-Path>./</Class-Path>
</manifestEntries>
</archive>
<outputDirectory>${project.parent.build.directory}</outputDirectory>
</configuration>
</plugin>
<!--拷贝依赖 copy-dependencies-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>
${project.parent.build.directory}/lib/
</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
<finalName>${project.artifactId}</finalName>
</build>
第一个插件是maven-jar-plugin,用于创建JAR文件。具体解释如下:
<groupId>
和<artifactId>
指定了插件的名称和组织/项目名称,这里是org.apache.maven.plugins和maven-jar-plugin。<version>
指定了插件的版本号,这里是3.2.2。<configuration>
标签用于配置插件的参数。<archive>
标签用于配置JAR文件的归档信息。<manifest>
标签用于配置JAR文件的清单信息。<addClasspath>true</addClasspath>
表示将当前模块的依赖添加到MANIFEST.MF文件中的Class-Path属性中。<classpathPrefix>./lib/</classpathPrefix>
表示在MANIFEST.MF文件中的Class-Path属性前添加一个前缀"./lib/"。<useUniqueVersions>false</useUniqueVersions>
表示在生成JAR文件时不使用唯一版本标识符。<mainClass>com.zkbl.ContractApplication</mainClass>
表示指定JAR文件的主类为com.zkbl.ContractApplication。
<manifestEntries>
标签用于配置清单文件的其他条目。<Class-Path>./</Class-Path>
表示在清单文件中的Class-Path属性中添加一个条目"./",表示将所有依赖都包含在JAR文件中。
<outputDirectory>${basedir}/target</outputDirectory>
表示将生成的JAR文件输出到${basedir}/target目录下。
第二个插件是maven-dependency-plugin,用于拷贝依赖到指定目录。具体解释如下:
<groupId>
和<artifactId>
指定了插件的名称和组织/项目名称,这里是org.apache.maven.plugins和maven-dependency-plugin。<executions>
标签用于配置插件的执行方式。<execution>
标签用于定义具体的执行目标。<id>copy-dependencies</id>
表示执行目标的名称为copy-dependencies。<phase>package</phase>
表示在打包阶段执行该目标。<goals>
标签用于指定执行目标需要完成的任务。<goal>copy-dependencies</goal>
表示执行拷贝依赖的任务。
<configuration>
标签用于配置拷贝依赖的具体参数。<outputDirectory></outputDirectory>
表示将拷贝的依赖文件输出到/target/lib/目录下。
成果如下: