在 pom.xml 依赖标记中为 jar 文件添加 systemPath
Posted
技术标签:
【中文标题】在 pom.xml 依赖标记中为 jar 文件添加 systemPath【英文标题】:Adding systemPath for jar file inside pom.xml dependency tag 【发布时间】:2021-12-29 11:29:48 【问题描述】:我已将一个现有的 maven 项目导入 Eclipse IDE。 pom.xml 有一个如下所示的依赖项。
<dependency>
<groupId>com.myApp</groupId>
<artifactId>MyDBConn</artifactId>
<version>0.0.0</version>
<scope>system</scope>
<systemPath>$basedir/dependencies/MyDBConn.jar</systemPath>
</dependency>
排队
<systemPath>$basedir/dependencies/MyDBConn.jar</systemPath>
我收到一个错误提示
在这一行找到多个注释: - com.myApp:MyDBConn:jar 的“dependencies.dependency.systemPath”不应指向文件 在项目目录中,$basedir/dependencies/MultiDBConn.jar 将无法被依赖解析 项目 - com.myApp:MyDBConn:jar 的“dependencies.dependency.systemPath”必须指定一个绝对值 路径但是是 $basedir/dependencies/MyDBConn.jar
我在项目目录的依赖文件夹中有 MyDBConn.jar 文件。据我了解 $basedir 指向 pom.xml 所在的路径。 那为什么会出现这个错误呢?
【问题讨论】:
第一个问题:为什么需要系统作用域依赖?该依赖项是由 Maven 构建的吗? 系统路径导入有时是有原因的。同样在这里。从终端构建的 Maven 工作正常。在我的情况下,这只是 eclipse ide,用 pom 编辑器打开了 pom,编辑器将其显示为错误。所以我想这是一个编辑器错误。不幸的是,项目 im project explorer 也被标记为失败 【参考方案1】:这不是错误;这是一个警告。请再次检查日志。 Maven 警告您,依赖 MyDBConn.jar
将不可用于依赖此项目的其他项目(依赖于 MyDBConn.jar
的项目)。
com.myApp.MyDBConn
是你写的吗?您可以在该项目上运行 mvn clean install
以将 jar 放在本地 Maven 存储库中。然后,您可以像这样使用它:
<dependency>
<groupId>com.myApp</groupId>
<artifactId>MyDBConn</artifactId>
<version>0.0.0</version>
</dependency>
【讨论】:
还有一点需要注意,Maven 团队说系统依赖是deprecated。 @Hari 这回答了你的问题吗? 从命令行构建是好的。只是 Eclipse 中的 pom 编辑器将其标记为错误。 @Hari,这回答了你的问题吗?以上是关于在 pom.xml 依赖标记中为 jar 文件添加 systemPath的主要内容,如果未能解决你的问题,请参考以下文章
Maven pom.xml 添加本地jar包依赖以及打包方法