【问题标题】:Adding systemPath for jar file inside pom.xml dependency tag在 pom.xml 依赖标记中为 jar 文件添加 systemPath
【发布时间】: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 也被标记为失败

标签: java maven pom.xml


【解决方案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,这回答了你的问题吗?
猜你喜欢
  • 2015-01-16
  • 1970-01-01
  • 1970-01-01
  • 2011-08-05
  • 2014-01-05
  • 1970-01-01
  • 1970-01-01
  • 2020-08-05
  • 2015-03-15
相关资源
最近更新 更多