首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

将外部jar作为依赖项添加到maven POM以进行编译,但在创建fat jar时将其排除

在使用Maven构建Java项目时,可以通过将外部的jar文件作为依赖项添加到项目的POM文件中,从而在编译过程中使用这些jar文件。然而,有时候我们可能希望在创建可执行的fat jar文件时排除这些外部依赖,以减小jar文件的大小。下面是一种实现方法:

在项目的POM文件中,通过使用Maven的dependencybuild插件来实现添加外部jar依赖和排除依赖的操作。具体步骤如下:

  1. dependencies节点下添加需要作为依赖项的外部jar,指定相应的groupIdartifactIdversion。例如:
代码语言:txt
复制
<dependencies>
    ...
    <dependency>
        <groupId>com.example</groupId>
        <artifactId>external-jar</artifactId>
        <version>1.0.0</version>
    </dependency>
    ...
</dependencies>
  1. build节点的plugins下添加maven-assembly-plugin插件,用于创建可执行的fat jar文件。例如:
代码语言:txt
复制
<build>
    ...
    <plugins>
        ...
        <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>3.3.0</version>
            <configuration>
                <archive>
                    <manifest>
                        <mainClass>com.example.MainClass</mainClass>
                    </manifest>
                </archive>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
                <excludes>
                    <exclude>com/example/external/**</exclude>
                </excludes>
            </configuration>
            <executions>
                <execution>
                    <id>make-assembly</id>
                    <phase>package</phase>
                    <goals>
                        <goal>single</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        ...
    </plugins>
    ...
</build>

在上述配置中,excludes节点中的exclude标签用于排除指定路径下的依赖项。这里示例中排除了com/example/external路径下的所有类。

  1. 运行mvn package命令,Maven将会自动下载所需的依赖项并将它们添加到编译过程中。同时,使用maven-assembly-plugin插件创建一个包含所有依赖项的可执行的fat jar文件。

请注意,上述步骤中的示例配置仅供参考,实际配置根据项目的具体需求可能会有所不同。在实际使用过程中,需要根据实际情况进行相应的调整。

希望这个答案能够帮助到你。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Java从入门到精通二十(IDEA配置Maven)

    Maven的主要功能是对项目进行统一的管理。有自己的比较标准的项目结构。 我们在编写项目的时候需要用到ide平台,比如常见的idea和eclipse。项目结构是一样的。创建项目编写好具体的功能后,一般情况下,eclipse下面创建的项目是无法在idea里面使用的。这样就造成了一定的不方便。单是如果我们使用Maven项目进行项目的统一管理的话,那么两个平台都可以使用。 同时也提供了依赖管理,非常方便我们去使用外部依赖。 对于项目的依赖的话,可以进行很方便的管理第三方库,或者是第三方资源,包括jar包以及插件资源。 我们直接使用数据库驱动以及数据库代理池的话需要进行下载第三方的资源,然后一般会放在lib目录下面。这样其实是不太方便的,因为如果我们所使用的的依赖比较多的话,那么需要下载太多的文件,并进行添加jar包,这样非常的不方便。

    04
    领券