Выгружаемые проекты Netbeans (pom недоступен в локальном хранилище) - PullRequest
5 голосов
/ 25 января 2012

У меня есть проект Maven, который всегда хорошо работал в Netbeans, но обновление с 6.9 до 7.1 не прошло хорошо. Я получаю следующую ошибку:

1 возникла проблема при создании эффективной модели для foo.bar:baz:1.0.0 [FATAL] Неразрешимый родительский POM: система хранилища находится в автономном режиме, но артефакт foo: bar-parent: pom: 1.0.1 недоступен в локальном хранилище. и parent.relativePath указывает на неправильный локальный POM @ строка 12, столбец 13 для проекта foo.bar:baz:1.0.0 в /Users/me/workspace/pom.xml

Я нашел этот билет с ошибкой для Netbeans, который довольно хорошо описывает проблему для другого парня, но предложение использовать «Обновить POM» не работает, а также mvn validate.

Здесь есть несколько запутанных вещей.

  • Запуск по командной строке работает.
  • Мой коллега с идентичной (по всем признакам) настройкой запускает этот проект на NB 7.1.
  • Работает сборка внутри Netbeans (сборка завершается успешно)
  • Использование предоставленной кнопки «Prime Build» в диалоговом окне ошибок запускает успешную сборку.
  • Файл не отсутствует! Это (и было) в местном репо! Именно там, где я и ожидал: .m2 / repository / foo / bar-parent / 1.0.1 / bar-parent-1.0.1.pom

Согласно странице Maven POM intro , атрибут относительный путь должен использоваться, если родительский объект / проект расположен в месте, отличном от нормального (где «нормальный» - это…). /pom.xml ").

В моем случае мой родительский проект на самом деле просто pom , и он не живет нигде, кроме как в хранилище (локально и удаленно). Даже если бы он не существовал локально, я бы ожидал, что вторичная «онлайн» сборка (как предложено) исправит Netbeans, но это не так.

В какой-то момент я вручную изменил свой pom-файл за пределами Netbeans, и проект внутри NB исправился. Я вручную изменил подпроекты таким же образом, чтобы заставить их работать, но исправление длилось недолго. Через несколько минут прозвище «[unloadable]» вернулось, хотя я точно не знаю, когда и почему оно вернулось.

Я пытался использовать Bundled v3.0.3 Maven, мой внешний v3.0.2 Maven, удаляя мои папки ~/.netbeans*, удаляя мою папку .m2/repository, копируя его .m2/repository на мою машину удаление всех версий Netbeans и переустановка 7.1, закрытие и повторное открытие проектов и приложения, позволяя Netbeans создавать проект с нуля, используя как обычные опции Build, Clean and Build, так и опцию Prime Build в диалоговом окне ошибок выполнение сборки с нуля в командной строке , затем импорт в Netbeans, любые их комбинации, и, кажется, ничего не имеет значения.

Пока я понижаюсь до 6.9.1, но я бы хотел знать, могу ли я попытаться сделать что-то еще.

Ответы [ 4 ]

3 голосов
/ 13 февраля 2012

Какой заголовок у вашего pom.xml? Я изменил это на это:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

от

<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

Maven CLI создает их обоих, в том числе NetBeans 6.x ... но NetBeans 7.x создает только первый.

2 голосов
/ 19 апреля 2012

Я увидел описанную ошибку при запуске NetBeans 7.1.x после попытки очистить мой внутренний репозиторий (Archiva, используя группы репо), упростил мой файл settings.xml и затем добавил родительский POM в мой проект.

Если я удалю родительскую ссылку POM в моем проекте, проблема исчезнет.

Если я включу активный профиль в файл settings.xml с допустимым разделом хранилища, проблема исчезнет.

Если я включу действующий раздел репозиториев в POM моего проекта, проблема исчезнет.

Мой родительский POM не является корнем многомодульного проекта. Он просто извлекается из хранилища, как и любая другая зависимость. У меня нет многомодульного проекта с родителем, с которым я бы мог его попробовать.

Несмотря на это, maven прекрасно создает и развертывает мои проекты из командной строки без этой настройки (даже с родительским POM), но для самого NetBeans, похоже, нужен определенный раздел репозиториев.

Мне кажется, это ошибка в том, как Netbeans относится к дочерним проектам. Я предполагаю, что он ищет местоположение по умолчанию для родителя (../pom.xml) и, когда не может найти его, пытается найти его в определенных репозиториях. Поскольку оно не определено, оно задыхается.

Netbeans, похоже, игнорирует настройку зеркал при попытке найти родительский POM.

2 голосов
/ 10 апреля 2012

Мне пришлось скопировать файл pom.xml из моего репозитория на один уровень каталога выше pom.xml моего проекта и переименовать в pom.xml.Не идеально, но это сработало.

2 голосов
/ 28 февраля 2012

Обновление: я также установил мои settings.xml ...: (

<mirrors>
  <mirror>
    <id>javaforum</id>
    <url>http://nexus.javaforum.hu/nexus/content/groups/public/</url>
    <mirrorOf>*</mirrorOf>
  </mirror>
</mirrors>
<profiles>
  <profile>
    <id>default</id>
    <activation>
      <activeByDefault>true</activeByDefault>
    </activation>
    <repositories>
      <repository>
        <id>javaforum</id>
        <url>http://nexus.javaforum.hu/nexus/content/groups/public/</url>
        <releases>
          <enabled>true</enabled>
        </releases>
        <snapshots>
          <enabled>true</enabled>
        </snapshots>
      </repository>
    </repositories>
  </profile>
</profiles>

Теперь он работает с NetBeans 7.x.

Если я удалю / прокомментирую "репозиторий "section:

* CLI (3.0.3) build is working
* NetBeans 7.x build is working but the project is "unloadable"

Если я удаляю / комментирую раздел" mirror ":

* CLI (3.0-3) build isn't working
* NetBeans 7.x build is working, the project looks like good

Таким образом, модификация pom.xml не требуется, IMHO ...:)

...