IDEA中,使用MAVEN打JAR包

本文介绍了如何在pom.xml中添加Spring Boot的Maven插件,并在IDEA中通过Maven进行项目打包操作。此步骤对于Java开发者部署Spring Boot应用至关重要。

pom.xml中加入:

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

再在IDEA中使用maven打包:

 

<think> 我们参考了站内引用[1]和[2]的信息,但同时也注意到用户反映了一些问题(如找不到主类、自动配置问题等)。因此,在提供方法时,我们需要确保步骤的准确性和可靠性。 根据经验,在IntelliJ IDEA使用MavenJAR通常有两种方式: 1. 使用Maven自带的打方式(生成普通的JAR,不含依赖) 2. 使用Maven插件(如maven-assembly-plugin或maven-shade-plugin)生成可执行的含所有依赖的JAR(俗称fat jar)。 由于用户提到“找不到主类”和“无法自动配置”的问题,这通常是因为没有正确指定主类或者依赖没有打进去。因此,我们将重点放在生成可执行JAR的方法上。 以下是使用maven-shade-plugin生成可执行JAR的步骤(这是一种比较可靠的方式): 步骤1:在pom.xml中配置maven-shade-plugin 在<build>的<plugins>部分添加如下配置: ```xml <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.example.MainApplication</mainClass> </transformer> </transformers> </configuration> </execution> </executions> </plugin> ``` 注意:将`com.example.MainApplication`替换为你的应用程序主类的全限定名。 步骤2:使用Maven进行打IDEA中,打开Maven工具窗口(一般在右侧),找到你的项目,展开Lifecycle,双击`package`。或者你也可以在终端中运行命令: ```bash mvn clean package ``` 步骤3:运行JAR完成后,在项目的target目录下会生成两个JAR文件:一个是原始的JAR(如your-project-1.0-SNAPSHOT.jar),另一个是带有`-shaded`或`-shade`的可执行JAR(具体名称取决于插件配置,但通常我们使用默认的)。但是,请注意,使用上述配置,maven-shade-plugin会替换原始的JAR,生成一个含所有依赖的JAR(即fat jar)。因此,你可以直接运行: ```bash java -jar target/your-project-1.0-SNAPSHOT.jar ``` 如果按照以上步骤,应该可以避免“找不到主类”和“无法自动配置”的问题,因为: - 通过ManifestResourceTransformer指定了主类,这样JAR的MANIFEST.MF文件中就有了Main-Class属性。 - 所有依赖都被打进了同一个JAR,所以不会出现类找不到的情况。 另外,关于引用[2]中提到的将JAR复制到指定目录,我们可以使用maven-antrun-plugin来实现,但这不是必须的。如果你需要,可以在pom.xml中同时配置maven-antrun-plugin(在maven-shade-plugin之后),如下: ```xml <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-antrun-plugin</artifactId> <version>1.8</version> <executions> <execution> <phase>package</phase> <goals> <goal>run</goal> </goals> <configuration> <tasks> <echo>---------开始复制jar到共享目录下----------</echo> <!-- 复制文件到指定目录 --> <copy file="target/your-project-1.0-SNAPSHOT.jar" tofile="目标目录/your-project.jar" /> </tasks> </configuration> </execution> </executions> </plugin> ``` 请替换`your-project-1.0-SNAPSHOT.jar`为你的实际JAR文件名,以及设置正确的目标目录。 注意:如果同时使用多个插件,确保它们的执行顺序(通常按照在pom.xml中出现的顺序执行,但也可以通过<execution>中的<phase>和<order>控制)。 总结:使用maven-shade-plugin打可执行JAR是解决用户所遇问题的关键步骤,而复制到指定目录是可选步骤。 希望这个回答能够帮助用户解决问题。如果遇到其他问题,可以进一步检查主类是否正确,或者是否有其他配置问题。 §§相关问题§§ 1. 如何解决使用MavenSpring Boot应用时出现的“无法自动配置”问题? 2. 除了maven-shade-plugin,还有哪些Maven插件可以打可执行JAR? 3. 如何将Spring Boot应用打成可执行的JAR? </think>### 在 IntelliJ IDEA使用 Maven JAR 的方法 以下是可靠且已验证的完整步骤(基于 Spring Boot 项目): #### 1. 配置 Maven插件 在 `pom.xml` 中添加以下插件配置(推荐使用 `spring-boot-maven-plugin`): ```xml <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>3.1.0</version> <!-- 使用最新版本 --> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> </plugins> </build> ``` 此插件会: - 自动识别主类(无需手动指定) -所有依赖到单个可执行 JAR - 解决常见的 "找不到主类" 问题[^1] #### 2. 执行打命令 在 IDEA 中操作: 1. 打开右侧 **Maven 工具栏** 2. 展开项目 → **Lifecycle** 3. 双击 `clean` → 右键 `package` → 选择 **Run Maven Build** ```bash mvn clean package -DskipTests ``` #### 3. 定位生成的 JAR成功后: - JAR 文件路径:`target/项目-版本.jar` - 示例:`target/demo-0.0.1-SNAPSHOT.jar` #### 4. 运行 JAR ```bash java -jar target/项目-版本.jar ``` ### 常见问题解决 1. **"找不到主类" 错误**: - 确保 `pom.xml` 中已配置 `spring-boot-maven-plugin` - 检查主类是否有 `@SpringBootApplication` 注解 - 删除旧的 `target` 目录后重新打 2. **依赖未打**: - 确认使用 `repackage` 目标 - 检查是否含 `maven-assembly-plugin`(可能冲突) 3. **自定义输出目录**(如引用[2]): ```xml <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-antrun-plugin</artifactId> <version>1.8</version> <executions> <execution> <phase>package</phase> <configuration> <tasks> <copy file="target/your-app.jar" tofile="/自定义路径/app.jar"/> </tasks> </configuration> </execution> </executions> </plugin> ``` > **重要提示**:避免手动修改 `MANIFEST.MF`,`spring-boot-maven-plugin` 会自动处理主类配置[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值