1、将依赖jar包输出到指定目录方式
打包命令:
mvn clean install -Dmaven.test.skip=true
运行方式:
java -Djava.ext.dirs=lib -cp java-study-1.0.jar java8.RunnableTest
运行结果:
hello, I am is testThread1.
hello, I am is lamda testThread2
pom.xml配置:
<build>
<finalName>java-study-1.0</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<encoding>utf-8</encoding>
</configuration>
</plugin>
<!-- 打包时将依赖包放入指定路径 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy</id>
<phase>install</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<!-- 项目构建输出目录,默认为target/ -->
<outputDirectory>${project.build.directory}/lib</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
2、将项目和依赖jar打成一个总的可执行jar包
打包命令:
maven clean install -Dmaven.test.skip=true
运行方式:
java -jar java-study-1.0.jar
运行结果:
hello, I am is testThread1.
hello, I am is lamda testThread2
pom.xml配置:
<build>
<finalName>java-study-1.0</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<encoding>utf-8</encoding>
</configuration>
</plugin>
<!-- 打包成可直接运行的jar包,如java -jar xx.jar -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.2</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<!-- 应根据以下的outputDirectory路径指定 -->
<classpathPrefix>lib</classpathPrefix>
<mainClass>java8.RunnableTest</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<!--打包时将依赖包放入指定路径-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.1.1</version>
<executions>
<execution>
<id>copy</id>
<phase>install</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<!-- 项目构建输出目录,默认为target/ -->
<outputDirectory>${project.build.directory}/lib</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
参考资料: