Законно ли иметь относительный путь к родительскому pom в хранилище? - PullRequest
2 голосов
/ 18 августа 2011

Я нашел этот артефакт в центральном хранилище maven 2:

http://search.maven.org/remotecontent?filepath=javax/servlet/jsp/jsp-api/2.1.2/jsp-api-2.1.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>
....

Я столкнулся с проблемой при попытке разрешить с помощью Ivy зависимость:

<dependency org="javax.servlet.jsp" name="jsp-api" rev="2.1.2" />

Ivy не удалось разрешить зависимость и распечатала эту ошибку:

[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}'

Теперь задаетесь вопросом, нормально ли, что файл pom в репозитории ссылается относительно родительского pom?

Ответы [ 2 ]

3 голосов
/ 18 августа 2011

Из POM Reference : "Обратите внимание на элементlativePath. Он не обязателен, но может использоваться как указатель для Maven, чтобы сначала найти путь, указанный для родителя этого проекта, прежде чем искать локальный и затем удаленные репозитории. "

Это фактически означает, что относительный путь используется только в том случае, если он найден, а затем Maven возвращается к обычному поиску в репозитории. В этом случае поиск в репозитории должен работать нормально, поскольку указанный артефакт доступен в центральном . Вы используете локальный репо или прокси? Возможно, настройки прокси-сервера не позволяют Ivy найти родительский pom.

0 голосов
/ 18 августа 2011

Да, это законно.

http://maven.apache.org/guides/introduction/introduction-to-the-pom.html#Project_Inheritance

По ошибке похоже, что она не разрешается ${jsp-api.version} для вас.

...