Java 在存储库中具有与父pom的relativePath是否合法?

Java 在存储库中具有与父pom的relativePath是否合法?,java,maven,ivy,Java,Maven,Ivy,我在maven 2中央存储库中发现了这个工件pom: 它包括: ... <parent> <groupId>org.glassfish.web</groupId> <artifactId>jsp</artifactId> <version>2.2</version> <relativePath>../pom.xml</relativePath> </parent&g

我在maven 2中央存储库中发现了这个工件pom:

它包括:

...
<parent>
  <groupId>org.glassfish.web</groupId>
  <artifactId>jsp</artifactId>
  <version>2.2</version>
  <relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<packaging>jar</packaging>
<version>${jsp-api.version}</version>
<name>JavaServer Pages(TM) API v${jsp-api.version}</name>
....
现在想知道存储库中的pom文件相对于父pom引用是否可以?

是的,这是合法的

从错误中看,它似乎没有为您解析
${jsp api.version}

来自:“注意relativePath元素。它不是必需的,但可以用作Maven的一个符号,在搜索本地存储库和远程存储库之前,先搜索为该项目父级提供的路径。”


这实际上意味着只有在找到relativePath时才使用它,然后Maven返回到正常的存储库查找。在这种情况下,存储库查找应该可以正常工作,因为引用的工件是。您是否使用本地回购或代理?可能是您的代理设置阻止Ivy查找父pom。

我知道在开发过程中这是合法的。但发布到存储库又如何呢?我是Ivy正在nexus存储库组(Maven Central、Java.net Repo、JBoss Repo)中搜索。
<dependency org="javax.servlet.jsp" name="jsp-api" rev="2.1.2" />
[ivy:resolve]       nexus: bad revision found in http://XXX/nexus/content/groups/public/javax/servlet/jsp/jsp-api/2.1.2/jsp-api-2.1.2.pom: expected='2.1.2 found='${jsp-api.version}'