maven项目创建可执行jar的6种方法

创建Java Maven项目的可执行JAR文件有多种方法,这些方法适用于任何Java项目,包括Spring和Spring Boot项目。以下是六种创建可执行JAR文件的方法,并附带详细代码介绍:

方法一:使用Spring Boot Maven插件(适用于Spring Boot项目)

对于Spring Boot项目,最简单直接的方法是使用spring-boot-maven-plugin

pom.xml配置

xml 复制代码
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
    </plugins>
</build>

执行命令

bash 复制代码
mvn clean package

执行完毕后,在target目录下将生成一个可执行JAR文件。

方法二:使用Maven Assembly插件

pom.xml配置

xml 复制代码
<build>
    <plugins>
        <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>3.3.0</version>
            <configuration>
                <archive>
                    <manifest>
                        <mainClass>com.yourpackage.YourMainClass</mainClass>
                    </manifest>
                </archive>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
            </configuration>
            <executions>
                <execution>
                    <id>make-assembly</id> <!-- this is used for inheritance merges -->
                    <phase>package</phase> <!-- bind to the packaging phase -->
                    <goals>
                        <goal>single</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

执行命令

bash 复制代码
mvn clean package

这将在target目录下生成一个包含所有依赖的JAR文件。

方法三:使用Maven Shade插件

pom.xml配置

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.yourpackage.YourMainClass</mainClass>
                            </transformer>
                        </transformers>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

执行命令

bash 复制代码
mvn clean package

这将创建一个包含所有依赖并设置正确Manifest的JAR文件。

方法四:使用Maven Jar插件结合Maven Dependency插件

这种方法涉及多个步骤和配置,首先使用Maven Dependency插件复制所有依赖项到一个目录,然后使用Maven Jar插件创建一个包含这些依赖和正确Manifest的JAR。

注意:由于这种方法涉及多个步骤和复杂的配置,不推荐作为首选方法。

方法五:手动设置Manifest文件

这种方法通常与其他插件结合使用,通过在构建过程中插入步骤来手动设置Manifest文件。

注意:手动设置Manifest文件需要深入了解JAR结构和Maven构建生命周期,因此不推荐作为通用解决方案。

方法六:结合使用多种插件

在某些复杂情况下,可能需要结合使用多种插件来实现特定的需求,例如同时处理依赖项和设置Manifest文件。

注意:这种方法需要较高的Maven配置经验和项目理解,通常只适用于特定场景。

通用注意事项:

  • 确保在pom.xml中正确设置<packaging>jar</packaging>
  • 确保你的主类(包含public static void main(String[] args)方法的类)具有正确的包名和类名,并在Manifest中正确设置。
  • 测试生成的可执行JAR以确保它在没有Maven环境的情况下也能正常运行。

由于代码示例的复杂性以及可能的项目特定需求,这里无法提供所有方法的完整代码示例。每个项目都有其独特的需求和配置,因此建议根据项目的实际情况选择最适合的方法,并参考Maven官方文档和相关插件的文档进行配置。加粗样式

相关推荐
一 乐20 分钟前
酒店客房预订|基于springboot + vue酒店客房预订系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端
计算机毕设指导621 分钟前
基于Spring Boot的防诈骗管理系统【源码文末联系】
java·spring boot·后端·spring·tomcat·maven·intellij-idea
a程序小傲28 分钟前
饿了吗Java面试被问:Redis的持久化策略对比(RDBVS AOF)
java·redis·面试
我家领养了个白胖胖35 分钟前
MCP模型上下文协议 Model Context Protocol & 百度地图MCP开发
java·后端·ai编程
Coder_Boy_38 分钟前
基于DDD+Spring Boot 3.2+LangChain4j构建企业级智能客服系统
java·人工智能·spring boot·后端
黄俊懿1 小时前
【深入理解SpringCloud微服务】Spring-Security作用与原理解析
java·后端·安全·spring·spring cloud·微服务·架构师
塔能物联运维1 小时前
设备自适应采样率忽视能耗致续航降 后来结合功耗模型动态调优
java·后端·struts
rchmin1 小时前
Spring Boot自动装配原理解析
java·spring boot·后端
程序员小假1 小时前
我们来说一下 synchronized 与 ReentrantLock 的区别
java·后端
益达3211 小时前
【避坑指南】Maven依赖冲突怎么解决?用mvn dependency:tree一眼看清
java