java - 无法在 .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
解决方案
您的本地存储库中可能存在缓存问题。
- 删除目录
/Users/alex/.m2/repository/com/oracle/oracle/10.2.0.5.0/
- 再次运行你的
install:install-file
。 - 尝试
mvn clean install
推荐阅读
- python - 尝试使用 scipy 插入 2D 数据 - 只是获取 NaN 数组
- python - 使用函数的输出作为函数新迭代的输入
- java - 如果我运行一次语音到文本,那么文本到语音不起作用,只显示吐司
- bash - 管道前 X 行到一个命令,其余到另一个命令
- umbraco - 无法将源类型绑定到模型类型 USNStarterKit.USNModels.USNBaseViewModel
- macos - 如何在 macOS 中为 Touch Bar 实现类似 QuickTime 的视频搜索器/洗涤器?
- jquery - 导出数据表中的表时如何拆分列内容
- c# - C#图表控件:水平条形图的X值对于系列中的所有点都是0
- c# - 在不要求管理员权限的情况下下载 exe C#
- java - 二叉树的打印级别顺序遍历,从左到右和从右到左交替