下面是针对 Maven 项目使用 Assembly 插件打包可执行 jar 包的完整攻略,包含了两个示例。
准备工作
首先,确保已经安装 Maven 和 JDK 并配置好环境变量。
接下来,需要在 Maven 项目中添加 Assembly 插件的依赖和配置。
在项目的 pom.xml
文件中添加以下依赖:
<dependencies>
...
<dependency>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.3.0</version>
</dependency>
...
</dependencies>
然后,在 pom.xml
文件的 <build>
节点中添加以下配置:
<build>
...
<plugins>
...
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.3.0</version>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<archive>
<manifest>
<mainClass>com.example.Main</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<finalName>my-project</finalName>
</configuration>
</execution>
</executions>
</plugin>
...
</plugins>
...
</build>
在上述配置中,mainClass
指定了程序的入口类,descriptorRef
指定了要使用的打包方式为“打包包含依赖的 jar 包”,finalName
指定了打包后生成的文件名。
示例一
假设我们有一个 Maven 项目,其中入口类为 com.example.Main
,程序依赖了 log4j
、json
、commons-lang3
等库。
-
在项目根目录下打开命令行或终端窗口。
-
输入以下命令编译和打包项目:
bash
mvn clean package
这里使用 clean
命令清理之前编译的结果,以保证打包的文件最新和正确性。
-
打包成功后,在项目根目录的
target
目录下可以找到一个名为my-project-jar-with-dependencies.jar
的可执行文件,该文件包含了项目所有依赖库。 -
在命令行或终端窗口中使用以下命令执行打包的可执行文件:
bash
java -jar my-project-jar-with-dependencies.jar
如果一切正常,我们应该看到程序成功运行并输出了一些结果。
示例二
假设我们有一个 Maven 网络爬虫项目,由以下文件组成:
crawler
├── src
│ ├── main
│ │ ├── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── Crawler.java # 入口类
│ │ └── resources
│ │ └── config.properties # 配置文件
│ └── test
│ ├── java
│ │ └── com
│ │ └── example
│ │ └── CrawlerTest.java
│ └── resources
│ └── test_config.properties
└── pom.xml
其中,config.properties
为爬虫的配置文件,包含了爬取的 URL、线程数量、间隔时间等参数。
我们需要将整个项目打包为一个可执行的 jar 包,使用户可以直接运行并进行爬取。
-
在项目根目录下打开命令行或终端窗口。
-
输入以下命令编译和打包项目:
bash
mvn clean package
-
打包成功后,在项目根目录的
target
目录下可以找到一个名为crawler-1.0.0-jar-with-dependencies.jar
的可执行文件。 -
在命令行或终端窗口中使用以下命令执行打包的可执行文件:
bash
java -jar crawler-1.0.0-jar-with-dependencies.jar --config=config.properties
运行参数中将 config.properties
文件作为配置文件传入,程序将从该文件中读取配置并进行爬取。
通过以上示例,我们可以看到 Maven 项目使用 Assembly 打包可执行 jar 包的方法。如果您的项目需要打包生成其他格式的文件,也可以在配置文件中进行相应的修改。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Maven 项目用Assembly打包可执行jar包的方法 - Python技术站