繁体   English   中英

pom.xml 中的错误

[英]error in pom.xml

我收到如下错误:

对于依赖Dependency {groupId=weblogic, artifactId=webservices, version=9.2, type=jar}:系统范围的依赖必须指定绝对路径系统路径

不知道出了什么问题。 我配置了我在 pom.xml 中使用的环境变量

使用system scope 时,您必须提供依赖项的绝对路径(与在 Maven 存储库中搜索的任何其他依赖项相反)。 请参阅依赖机制简介中的系统依赖关系。

例子:

<dependency>
  <groupId>javax.sql</groupId>
  <artifactId>jdbc-stdext</artifactId>
  <version>2.0</version>
  <scope>system</scope>
  <systemPath>${java.home}/lib/rt.jar</systemPath>
</dependency>

为什么不直接在本地/公司存储库中安装第三方工件?

编辑:如果您定义了systemPath但怀疑环境变量未解析,您将收到以下错误(注意路径中存在变量):

The project ... has 1 error
'dependencies.dependency.systemPath' for weblogic:webservices:jar must specify an absolute path but is ${env.BEA_HOME}/lib/xyz.jar @ line ...

但是如果 Maven 发现变量并正确解析它,上面引用的错误消息将包含已经解析的目录(不是占位符)。 在 Ubuntu/Maven 3 上测试。

你可以从 pom 中发布你的“依赖”元素吗?

猜测它是 scope 'system' 并且那里有一个路径,并且该路径是相对路径(例如 '../../someJar.jar')而不是绝对路径(例如 /opt/someDir/someJar 。罐)。

Maven 需要绝对路径。

作为旁注,您可能需要考虑为非公共共享 jars 创建一个本地共享存储库,并远离“系统”scope。 当在其他环境中完成构建时,系统 scope 可能会咬你的后部。

我在尝试构建 arquillian-was-embedded-8 工件时遇到了类似的问题。 我也在使用 Win 7 64 位。 使用 Git,我在 NetBeans 中克隆了 Arquillian Embedded WAS 项目,并遇到了同样的错误。 我在打开 NetBeans 时更改了我的操作系统环境变量。 通常,您必须关闭所有 Windows Explorer windows 和命令提示符 windows 才能使环境变量生效。 我抓住机会也关闭了 NetBeans。 再次打开 NetBeans 后,项目解析了 ${env.WAS8_HOME} 变量。 奇怪……但无论如何。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM