maven带有main方法的jar包打包

本文介绍如何使用Maven配置可执行Jar包的打包过程,包括指定主类、依赖项整合及跳过测试等步骤,并提供了运行该Jar文件的方法。
     <plugins>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <configuration>
                    <appendAssemblyId>false</appendAssemblyId>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                    <archive>
                        <manifest>
                            <mainClass>RunJob</mainClass>
                        </manifest>
                    </archive>
                </configuration>
                <executions>
                    <execution>
                        <id>make-assembly</id>
                        <phase>package</phase>
                        <goals>
                            <goal>assembly</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

复制代码

其中<mainClass>RunJob</mainClass>填写含有Main的class名,然后执行以下命令:

mvn assembly:assembly
//跳过测试 
mvn -Dmaven.test.skip=true  assembly:assembly

 

打包成功后会把所有依赖Jar的class打在一个jar包中。

使用以下命令运行jar,参数依次跟在后面,如果有的话:

java -jar BuildKettleJob-1.0.jar 
### Maven 打包main 方法的 Java 程序为可执行 JAR 文件 Maven 提供了多种方式将含 `main` 方法的 Java 程序打包为可执行 JAR 文件。最常见的方式是使用 `maven-assembly-plugin` 或 `maven-shade-plugin` 来生成含所有依赖的可执行 JAR。 #### 使用 `maven-assembly-plugin` 打包可执行 JAR 在 `pom.xml` 文件中配置 `maven-assembly-plugin` 插件,并指定主类(Main-Class): ```xml <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <source>1.8</source> <target>1.8</target> <encoding>UTF-8</encoding> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>2.2-beta-5</version> <configuration> <archive> <manifest> <mainClass>com.huangliwei.util.md5.StartMain</mainClass> </manifest> </archive> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> </configuration> </plugin> </plugins> </build> ``` 配置完成后,执行以下 Maven 命令进行打包: ```bash mvn assembly:assembly ``` 构建完成后,生成的可执行 JAR 文件位于 `target` 目录下,文件名通常带有 `jar-with-dependencies` 后缀,表示该 JAR 含了所有依赖库[^1]。 #### 使用 `maven-shade-plugin` 打包可执行 JAR 另一种常见方式是使用 `maven-shade-plugin`,它支持更灵活的依赖管理和主类配置: ```xml <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>3.2.4</version> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <mainClass>com.huangliwei.util.md5.StartMain</mainClass> </transformer> </transformers> </configuration> </execution> </executions> </plugin> </plugins> </build> ``` 执行以下命令进行构建: ```bash mvn package ``` 构建完成后,生成的可执行 JAR 文件同样位于 `target` 目录下,可以直接运行: ```bash java -jar your-project-name.jar ``` 该方式适用于需要将依赖库合并到单个 JAR 文件中的场景,避免依赖文件路径问题[^2]。 #### 注意事项 - **主类配置**:在插件配置中必须明确指定主类(Main-Class),否则生成的 JAR 文件将无法识别入口点。 - **依赖管理**:使用 `maven-assembly-plugin` 生成的 JAR 会将所有依赖打包进一个文件,而 `maven-shade-plugin` 提供了更高级的依赖处理能力,适合复杂项目。 - **构建输出目录**:通常情况下,Maven 构建的输出文件会位于 `target/` 目录下,建议在构建完成后检查该目录以获取生成的 JAR 文件[^1]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值