Java pom.xml中存在错误

Java pom.xml中存在错误,java,maven,pom.xml,Java,Maven,Pom.xml,我得到一个错误,如下所示: 依赖关系 {groupId=weblogic, artifactId=webservices,版本=9.2, type=jar}:系统范围的依赖项 必须指定一个绝对路径系统 路径 不知道怎么了。我配置了环境变量,我在pom.xml中使用该变量,当使用system范围时,您必须提供依赖项的绝对路径(与Maven存储库中搜索的任何其他依赖项相反)。请参见依赖关系机制简介中的 例如: <dependency> <groupId>javax.sql

我得到一个错误,如下所示:

依赖关系 {groupId=weblogic, artifactId=webservices,版本=9.2, type=jar}:系统范围的依赖项 必须指定一个绝对路径系统 路径


不知道怎么了。我配置了环境变量,我在pom.xml中使用该变量,当使用
system
范围时,您必须提供依赖项的绝对路径(与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>

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

你能从pom中发布你的“依赖性”元素吗

猜测它属于“系统”范围,其中有一条路径,该路径是相对路径(例如“../../someJar.jar”),而不是绝对路径(例如/opt/someDir/someJar.jar)

Maven需要一条绝对路径


作为旁注,您可能希望为非公共共享jar创建本地共享存储库,并避开“系统”范围。在其他环境中完成构建时,系统范围可能会对您造成负面影响。

我在尝试构建arquillian-was-embedded-8工件时遇到了类似的问题。我也使用Win7 64位。使用Git,我在NetBeans中克隆了Arquillian Embedded WAS项目,并面临相同的错误。我在打开NetBeans时更改了OS环境变量。通常,要使环境变量生效,必须关闭所有Windows资源管理器窗口和命令提示窗口。我抓住了一个机会,也关闭了NetBeans。再次打开NetBeans时,项目解析了${env.WAS8_HOME}变量。奇怪……但不管怎样。

感谢您的快速回复,我有一个与上面配置类似的系统路径。但我认为现在的问题是,不知何故,环境变量并没有得到解决。我的代码如下:${env.BEA_HOME}/lib/xyz.jar,我将BEA_HOME配置为一个环境变量。但还是有错误。如果有帮助的话,我正在使用Windows7设备。这一切都很好,除非你想使用tools.jar之类的东西,它在JDK/lib目录下,而不是JDK/jre/lib目录下。因此,一方面,Maven文档说“${java.home}指定当前JRE_home环境的路径,并使用相对路径来获取,例如:${java.home}../bin/java.exe”,另一方面,当您对系统路径执行此操作时,它会发出抱怨。当然,最好让java.home属性与环境变量等效,然后调用JRE子目录的路径,比如${JRE.home}?如果${session.executionRootDirectory}等其他maven环境变量不起作用,请尝试使用${project.basedir}。
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 ...