Maven 在运行时添加依赖项

Jor*_*azo 3 java jar maven

我正在尝试使用 maven 编译和运行这个 java 项目。为此,我不得不使用 3rd 方 Jar 库,在 maven 存储库中找不到。我一直试图告诉 maven 在运行时使用这个库(因为它在编译时工作得很好,正如我在 POM 文件中所说的那样,没有问题)。我尝试了几种方法,例如使用Add-Jars 插件,将其作为外部依赖项添加到 POM 文件中:

        <!--medpost-->
    <dependency>
        <groupId>lib.medpost</groupId>
        <artifactId>medpost</artifactId>
        <version>1.0</version>
        <scope>system</scope>
        <systemPath>${project.basedir}/lib/medpost/medpost/1.0/medpost.jar</systemPath>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

除其他事项外,例如尝试将其指示为命令行参数,例如此API 中所示的第一个可选参数。它仍然抛出 ClassNotFoundException。任何帮助是极大的赞赏。

Tim*_*sen 5

首先,您需要将自定义 JAR 安装到本地 Maven 存储库中:

mvn install:install-file -Dfile=medpost.jar 
    -DgroupId=lib.medpost -DartifactId=medpost -Dversion=1.0
Run Code Online (Sandbox Code Playgroud)

然后只需将以下标准<dependency>放入您的 POM 文件中:

<dependency>
    <groupId>lib.medpost</groupId>
    <artifactId>medpost</artifactId>
    <version>1.0</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

默认情况下,medpost.jar将可用于编译运行时,因此您不需要指定范围,除非您有除 OP 所述之外的特殊需要。

顺便说一下,您在编译期间没有问题的可能原因是您的IDE在其类路径上有 JAR。但是当实际尝试运行它时,依赖项不可用。