pom.xml中的错误

时间:2011-07-01 15:59:23

标签: java maven pom.xml

我收到如下错误:

  

依赖性依赖性   {的groupId = WebLogic中,   artifactId = webservices,version = 9.2,   type = jar}:系统范围的依赖项   必须指定绝对路径系统   路径

不确定是什么问题。我配置了环境变量,我在pom.xml中使用

3 个答案:

答案 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}变量。奇怪......但无论如何。