下面为你详细讲解如何利用Maven项目打包成Jar并包含所有依赖的详细教程。
一、前提条件
在进行下面的操作前,请确保你的开发环境中已经安装了Maven,并且已经正确配置了Maven的环境变量。
二、maven打包命令
在Maven项目的根目录下运行以下命令:
mvn clean package
此命令将在target
目录下生成一个Jar包文件。当然,也可以使用以下命令指定Jar包的名称:
mvn clean package -DfinalName=myapp.jar
三、maven打包并包含所有依赖
Maven提供了两种常见的方式来打包并包含所有依赖,分别是:
1. Maven Shade Plugin
Maven Shade Plugin可以将项目中所有依赖合并到一个Jar包中,方便部署和运行。
在项目的pom.xml文件中添加如下代码:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.4</version>
<configuration>
<createDependencyReducedPom>false</createDependencyReducedPom>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
然后在命令行中执行以下命令:
mvn clean package shade:shade
此命令将在target
目录下生成一个Jar包文件,并且包含了所有的依赖。
2. Maven Assembly Plugin
Maven Assembly Plugin可以将项目中所有依赖打包成一个Jar包,另外,此插件还可以将打包好的Jar包与配置文件等一起打包。
在项目的pom.xml文件中添加如下代码:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.3.0</version>
<configuration>
<archive>
<manifest>
<mainClass>com.example.Main</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
然后在命令行中执行以下命令:
mvn clean package assembly:single
此命令将在target
目录下生成一个Jar包文件,并且包含了所有的依赖。
四、示例说明
示例1:使用Maven Shade Plugin打包
假设我们有一个名为myapp
的Maven项目,包含了一个Main类,如下所示:
public class Main {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
此项目中还依赖了JUnit和Log4j这两个库,需要打包成一个Jar包,并且包含了所有的依赖。
-
首先在项目的pom.xml文件中添加上述的Maven Shade Plugin代码。
-
然后打开命令行,进入到项目的根目录下,运行以下命令进行打包:
mvn clean package shade:shade
-
执行以上命令后,在
target
目录下应该会生成一个myapp-1.0-SNAPSHOT.jar
的文件,此文件包含了Main类以及所有依赖库。 -
运行以下命令可以验证是否打包成功:
java -jar myapp-1.0-SNAPSHOT.jar
- 命令执行后,输出如下所示:
Hello World!
示例2:使用Maven Assembly Plugin打包
由于使用Maven Shade Plugin和Maven Assembly Plugin打包成jar包的过程类似,所以这里只提供一个简单的例子。
假设我们有一个名为myapp2
的Maven项目,包含了一个Main类,如下所示:
public class Main {
public static void main(String[] args) {
System.out.println("Hello, this is myapp2!");
}
}
此项目还依赖了Hibernate和MySQL这两个库,需要打包成一个Jar包,并且包含了所有的依赖。
-
首先在项目的pom.xml文件中添加上述的Maven Assembly Plugin代码。
-
然后打开命令行,进入到项目的根目录下,运行以下命令进行打包:
mvn clean package assembly:single
-
执行以上命令后,在
target
目录下应该会生成一个myapp2-1.0-SNAPSHOT-jar-with-dependencies.jar
的文件,此文件包含了Main类以及所有依赖库。 -
运行以下命令可以验证是否打包成功:
java -jar myapp2-1.0-SNAPSHOT-jar-with-dependencies.jar
- 命令执行后,输出如下所示:
Hello, this is myapp2!
至此,我已经为你详细讲解了Maven项目打包成Jar并包含所有依赖的完整攻略,包含了两个示例说明。希望对你有所帮助,谢谢!
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:maven项目打jar包并包含所有依赖详细教程 - Python技术站