我收到如下错误:
依赖性依赖性 {的groupId = WebLogic中, artifactId = webservices,version = 9.2, type = jar}:系统范围的依赖项 必须指定绝对路径系统 路径
不确定是什么问题。我配置了环境变量,我在pom.xml中使用
答案 0 :(得分:11)
使用system
范围时,您必须提供依赖关系的绝对路径(与在Maven存储库中搜索的任何其他依赖关系相反)。请参阅依赖性机制简介中的System Dependencies。
示例:
<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上测试。
答案 1 :(得分:1)
你能从pom发布'Dependency'元素吗?
猜测它是范围'系统'并且那里有一条路径,那条路径是相对路径(例如'../../someJar.jar')而不是绝对路径(例如/opt/someDir/someJar.jar)。
Maven需要绝对的路径。
作为旁注,您可能希望查看为非公共共享jar创建本地共享存储库,并避开“系统”范围。当在其他环境中完成构建时,系统范围可能会让您感到紧张。
答案 2 :(得分:0)
我在尝试构建arquillian-was-embedded-8工件时遇到了类似的问题。我也使用Win 7 64位。使用Git,我在NetBeans中克隆了Arquillian Embedded WAS项目,并遇到了同样的错误。我在NetBeans打开时更改了我的OS环境变量。通常,您必须关闭所有Windows资源管理器窗口和命令提示符窗口才能使Environment变量生效。我抓住机会并关闭了NetBeans。再次打开NetBeans后,项目解析了$ {env.WAS8_HOME}变量。奇怪......但无论如何。