首页 > 解决方案 > 无法在 .jar 构建中包含本地 maven 依赖项

问题描述

我的项目中有以下 Maven 依赖项:

<dependency>
    <groupId>com.oracle</groupId>
    <artifactId>ojdbc14</artifactId>
    <version>10.2.0.5.0</version>
    <scope>system</scope>
    <systemPath>/Users/alex/code/scratch/src/assets/ojdbc14.jar</systemPath>
</dependency>

在 IntelliJ IDE 中构建时,它按预期工作,并且我能够按预期与我的 Oracle DB 交互。

但是,当我尝试在 CLI 中使用以下命令构建它时:

mvn clean compile assembly:single

构建将完成,但是在运行我的 .jar 时,我得到以下信息:

Exception occurred: java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver

我不太确定为什么我能够在 IntelliJ 中使用依赖关系,但在编译出来时却不能。

这里也是我的程序集插件配置供参考:

<plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId>
            <configuration>
                <finalName>scratch</finalName>
                <archive>
                    <manifest>
                        <mainClass>scratch.Scratch</mainClass>
                    </manifest>
                </archive>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
                <appendAssemblyId>false</appendAssemblyId>
            </configuration>
        </plugin>

如何更改我的设置,以便我可以将我的 ojdbc14.jar 打包到我的项目的构建中。或者我是否必须始终提供依赖 jar 以及我的 jar?

编辑:我也尝试了以下

mvn install:install-file -Dfile=src/assets/ojdbc14.jar -DgroupId=com.oracle -DartifactId=oracle -Dversion=10.2.0.5.0 -Dpackaging=jar -DgeneratePom=true

输出:

    --- maven-install-plugin:2.4:install-file (default-cli) @ scratch ---
[INFO] Installing /Users/alex/code/scratch/src/assets/ojdbc14.jar to /Users/alex/.m2/repository/com/oracle/oracle/10.2.0.5.0/oracle-10.2.0.5.0.jar
[INFO] Installing /var/folders/0w/3mt249xn54d88n7zptdbjjbh0000gn/T/mvninstall4687156200536752767.pom to /Users/alex/.m2/repository/com/oracle/oracle/10.2.0.5.0/oracle-10.2.0.5.0.pom
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS

标签: javamaven

解决方案


您的本地存储库中可能存在缓存问题。

  • 删除目录/Users/alex/.m2/repository/com/oracle/oracle/10.2.0.5.0/
  • 再次运行你的install:install-file
  • 尝试mvn clean install

推荐阅读