我正在一个错误如下:误差在pom.xml中
对于依赖依赖 {的groupId = WebLogic中, 的artifactId = web服务,版本= 9.2Hz, 类型=罐子}:系统 - 范围依赖 必须指定一个绝对路径系统 路径
不知道什么是错的。我已经配置环境变量。我正在使用的pom.xml
我正在一个错误如下:误差在pom.xml中
对于依赖依赖 {的groupId = WebLogic中, 的artifactId = web服务,版本= 9.2Hz, 类型=罐子}:系统 - 范围依赖 必须指定一个绝对路径系统 路径
不知道什么是错的。我已经配置环境变量。我正在使用的pom.xml
当使用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上测试。
你可以发布你的'Dependency'元素吗?
猜测,它的范围“系统”,并且有一个在那里的路径,并且该路径是一个相对路径(例如“../../someJar.jar”),而不是绝对路径(例如/opt/someDir/someJar.jar)。
Maven需要一个绝对路径。
请注意,您可能想要为非公共共享罐创建本地共享存储库并转向远离“系统”范围。当在其他环境中完成构建时,系统范围可能会让你后退。
当试图构建arquillian-was-embedded-8工件时,遇到了类似的问题。我也使用Win 7 64位。使用Git,我在NetBeans中克隆了Arquillian Embedded WAS项目,并面临同样的错误。当我打开NetBeans时,我更改了我的OS环境变量。通常,您必须关闭所有Windows资源管理器窗口和命令提示符窗口以使Environment变量生效。我抓住机会关闭了NetBeans。在再次打开NetBeans时,项目解析了$ {env.WAS8_HOME}变量。奇怪......但是无论如何。
感谢您的快速回复,我的系统路径配置与上面类似。但我现在认为的问题是,不知何故,环境可变是无法解决的。我有这样的:$ {env.BEA_HOME} /lib/xyz.jar,并且我将BEA_HOME配置为一个环境变量。但仍然出现错误。如果有帮助,我正在开发一个Windows 7的包装盒。 – sab
看我的编辑,也许它会帮助你。 –
这一切都很好,除非你想使用类似于JDK/lib目录下的tools.jar而不是JDK/jre/lib的东西。因此,一方面,Maven文档中提到“$ {java.home}指定当前JRE_HOME环境使用相对路径的路径,例如: $ {java.home} ../ bin/java.exe “,另一方面,当你为系统路径做这件事时,它会抱怨。当然,最好将java.home属性等同于环境变量,然后调用类似$ {jre.home}的JRE子目录的路径。 –
RCross