这篇文章主要介绍了Java中Maven项目导出jar包配置的示例代码,需要的朋友可以参考下
具体代码如下所示;<!-- 第一种打包方式 (maven-jar-plugin), 将依赖包和配置文件放到jar包外 -->
<build>
<sourcedirectory>src/main/java</sourcedirectory>
<resources>
<resource>
<directory>src/main/resources</directory>
<!-- 将<directory>目录下的文件打包到<targetpath>下 -->
<targetpath>${project.build.directory}</targetpath>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
</resources>
<testsourcedirectory>src/test/java</testsourcedirectory>
<testresources>
<testresource>
<directory>src/test/resources</directory>
<filtering>true</filtering>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</testresource>
</testresources>
<plugins>
<plugin>
<groupid>org.apache.maven.plugins</groupid>
<artifactid>maven-compiler-plugin</artifactid>
<version>2.3.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>utf-8</encoding>
</configuration>
</plugin>
<!-- 将项目依赖包复制到<outputdirectory>指定的目录下 -->
<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.build.directory}/lib
</outputdirectory>
</configuration>
</execution>
</executions>
</plugin>
<!-- 将项目依赖包的路径(与上一项中的<outputdirectory>对应)添加到classpath中 -->
<plugin>
<groupid>org.apache.maven.plugins</groupid>
<artifactid>maven-jar-plugin</artifactid>
<configuration>
<archive>
<manifest>
<addclasspath>true</addclasspath>
<classpathprefix>lib/</classpathprefix>
<mainclass>com.ctbri.echorisk.applicationstart</mainclass>
</manifest>
<manifestentries>
<class-path>./</class-path>
</manifestentries>
</archive>
</configuration>
</plugin>
</plugins>
</build>
<!-- 第二种打包方式 (maven-shade-plugin), 将依赖包和配置文件放到jar包内 -->
<build>
<directory>${project.basedir}/target</directory>
<finalname>${project.artifactid}-${project.version}</finalname>
<plugins>
<plugin>
<groupid>org.apache.maven.plugins</groupid>
<artifactid>maven-surefire-plugin</artifactid>
<version>2.21.0</version>
<configuration>
<skiptests>true</skiptests>
</configuration>
</plugin>
<plugin>
<groupid>org.apache.maven.plugins</groupid>
<artifactid>maven-compiler-plugin</artifactid>
<version>2.3.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>utf-8</encoding>
<compilerarguments>
<extdirs>${project.basedir}/lib/</extdirs>
</compilerarguments>
</configuration>
</plugin>
<plugin>
<groupid>org.apache.maven.plugins</groupid>
<artifactid>maven-shade-plugin</artifactid>
<version>3.1.0</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<minimizejar>true</minimizejar>
<filters>
<filter>
<artifact>*:*</artifact>
</filter>
</filters>
<transformers>
<!-- 往manifest文件中写入main-class是可执行包的必要条件。manifestresourcetransformer可以轻松实现。 -->
<transformer
implementation="org.apache.maven.plugins.shade.resource.manifestresourcetransformer">
<mainclass>com.ctbri.echorisk.applicationstart</mainclass>
</transformer>
<!-- appendingtransformer 用来处理多个jar包中存在重名的配置文件的合并,尤其是spring -->
<transformer
implementation="org.apache.maven.plugins.shade.resource.appendingtransformer">
<resource>meta-inf/spring.handlers</resource>
</transformer>
<transformer
implementation="org.apache.maven.plugins.shade.resource.appendingtransformer">
<resource>meta-inf/spring.schemas</resource>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<!-- 第三种打包方式 (maven-assembly-plugin) -->
<build>
<plugins>
<plugin>
<groupid>org.apache.maven.plugins</groupid>
<artifactid>maven-surefire-plugin</artifactid>
<version>2.21.0</version>
<configuration>
<skiptests>true</skiptests>
</configuration>
</plugin>
<plugin>
<artifactid>maven-compiler-plugin</artifactid>
<version>2.3.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>utf-8</encoding>
<compilerarguments>
<extdirs>${project.basedir}/lib/</extdirs>
</compilerarguments>
</configuration>
</plugin>
<plugin>
<artifactid>maven-assembly-plugin</artifactid>
<configuration>
<descriptorrefs>
<descriptorref>jar-with-dependencies</descriptorref>
</descriptorrefs>
<archive>
<manifest>
<mainclass>com.ctbri.echorisk.applicationstart</mainclass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build> 总结
以上所述是小编给大家介绍的java中maven项目导出jar包配置的示例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对CodeAE代码之家网站的支持!
原文链接:https://www.cnblogs.com/strugglion/archive/2018/11/26/10020218.html
|