idea配置maven插件打包所有jar到lib

在 IntelliJ IDEA 中配置 Maven 插件以将所有依赖的 JAR 打包到一个 lib 文件夹中,通常不是通过直接配置 IDEA 来完成的,而是通过在 Maven 项目的 pom.xml 文件中添加相应的配置来实现的。

下面是一个几种简单的方式,说明如何在 Maven 项目中实现这一目标:

如果是springboot项目,那么可以在你的 pom.xml 文件中直接添加 Maven 依赖插件(如spring-boot-maven-plugin)的配置

    <build>
        <finalName>manage</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.7.18</version>
                <executions>
                    <execution>
                        <goals>
                            <!-- repackage 是 spring-boot-maven-plugin 的默认目标。会打包所有依赖到BOOT-INF/lib -->
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
                <!-- 打包热部署,本地开发请注释掉configuration-->
                <configuration>
                    <fork>true</fork>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <version>3.0.1</version>
            </plugin>
        </plugins>
    </build>

可以在你的 pom.xml 文件中,添加 Maven 依赖插件(如 maven-dependency-plugin)的配置,用于复制依赖项到指定的目录。

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <version>3.2.0</version> <!-- 使用时请检查最新版本 -->
            <executions>
                <execution>
                    <id>copy-dependencies</id>
                    <phase>package</phase>
                    <goals>
                <!-- 打包热部署,本地开发请注释掉configuration-->
                        <goal>copy-dependencies</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>${project.build.directory}/lib</outputDirectory>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

在这个配置中, 标签指定了依赖项将被复制到的目录,即 ${project.build.directory}/lib,这通常对应于 target/lib。
执行 Maven 打包命令: 在 IntelliJ IDEA 中,你可以通过右侧的 Maven 工具窗口执行 Maven 命令。展开 Lifecycle 节点,并双击 package 任务。这将触发 Maven 构建过程,包括上面配置的 copy-dependencies 执行阶段。
检查复制的 JAR 文件: 构建完成后,你可以在项目的 target/lib 文件夹中找到所有复制的依赖 JAR 文件。
请注意,这个方法是将依赖项复制到 target/lib 文件夹中,而不是直接打包到一个 JAR 文件中。如果你想要将所有依赖项和你的项目代码打包到一个可执行的 JAR 文件中(即所谓的“胖 JAR”或“uber JAR”),你需要使用 maven-assembly-plugin 或 maven-shade-plugin。

如果你确实想要创建一个包含所有依赖的 JAR 文件,下面是一个使用 maven-assembly-plugin 的示例配置:

<plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>3.3.0</version> <!-- 使用时请检查最新版本 -->
    <configuration>
        <archive>
            <manifest>
                <mainClass>your.main.Class</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>

在这个配置中,maven-assembly-plugin 将创建一个包含所有依赖项和项目代码的 JAR 文件。记得将 标签中的 your.main.Class 替换为你的项目的主类。执行 Maven 的 package 阶段后,你应该会在 target 文件夹中找到一个名为 [artifactId]-[version]-jar-with-dependencies.jar 的文件。

posted @ 2024-05-27 15:42  明月心~  阅读(1546)  评论(0)    收藏  举报