Не загружаемые проекты Netbeans (pom недоступен в локальном репозитории)
У меня есть проект Maven, который всегда отлично работал в Netbeans, но обновление с 6.9 до 7.1 не прошло хорошо. Я получаю следующую ошибку:
1 проблема возникла при построении эффективной модели для foo.бар: баз: 1.0.0 [Фатальный] неразрешимый Родительский POM: система репозитория отключена, но артефакт foo: bar-parent:pom: 1.0.1 недоступен в локальном репозитории. и родителей.relativePath ' указывает на неправильный локальный POM @ строка 12, столбец 13 для реализации проекта foo.bar: baz: 1.0.0 at / Users / me / workspace/pom.xml
Я нашел этот билет ошибки для Netbeans, который довольно хорошо описывает проблему для другого парня, но предложение использовать "Reload POM" не работает, как и mvn validate
.
Здесь есть несколько запутанных пунктов.
- работает в командной строке.
- мой коллега, с идентичной (по всем признакам) настройкой, запускает этот проект на NB 7.1.
- построение внутри Netbeans works (the build преуспевает)
- С помощью предоставленной кнопки "Prime Build" в диалоговом окне ошибки запускается сборка, которая завершается успешно.
- файл не отсутствует! Он есть (и был) в местном РЕПО! Именно там, где я этого и ожидал: .m2 / repository/foo / bar-parent / 1.0.1 / bar-parent-1.0.1.pom
Согласно страницеMaven POM intro , атрибут relativePath должен использоваться, когда у вас есть родительский pom/проект, расположенный в отличном от нормального месте (где "нормальный"-это "../ПФЛ.XML").
В моем случае мой родительский проект на самом деле просто pom, и он нигде не живет, кроме как в репозитории (локально и удаленно). Даже если бы он не существовал локально, я ожидал бы, что вторичная" онлайновая " сборка (как предлагалось) исправит Netbeans, но это не так.
В какой-то момент я вручную изменил свой POM-файл за пределами Netbeans, и проект внутри NB исправился. Я вручную изменил подпроекты таким же образом, чтобы заставить их работать, но исправление долго это не продлилось. Через несколько минут прозвище" не загружаемый " вернулось, хотя я не знаю точно, когда и что заставило его вернуться.
Я пробовал использовать встроенный 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 ответа:
Обновление: я установил свои настройки.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.
Если я удалю / прокомментирую раздел "репозиторий":
* CLI (3.0.3) build is working * NetBeans 7.x build is working but the project is "unloadable"
Если я удалю / прокомментирую раздел "зеркало":
* CLI (3.0-3) build isn't working * NetBeans 7.x build is working, the project looks like good
Итак, пом.модификация xml не нужна ИМХО... :)
Каков заголовок вашего пом.в 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">
Знаток командной строки строит их обоих, в NetBeans 6.Икс тоже... но NetBeans 7.x строит только первый.
Мне пришлось скопировать pom.xml-файл из моего РЕПО на один уровень каталога выше pom моего проекта.xml и переименование в pom.XML. Не идеально, но сработало.
Я видел описанную ошибку при запуске NetBeans 7.1.x после попытки очистить мой внутренний репозиторий (Archiva, используя группы РЕПО), упростите Мои настройки.xml и затем добавление родительского POM в мой проект.
Если я удалю родительскую ссылку POM в своем проекте, проблема исчезнет.
Если я включаю активный профиль в свои настройки.xml с допустимым разделом репозитория, проблема уходит.
Если я включаю допустимый раздел репозиториев в свой проект POM, проблема будет решена прочь.
Мой родительский POM не является корнем многомодульного проекта. Он просто извлекается из хранилища, как и любая другая зависимость. У меня нет многомодульного проекта с родителем, с которым я мог бы попробовать.
Несмотря на это, maven отлично строит и развертывает мои проекты из командной строки без этой настройки (даже с родительским POM), но NetBeans, похоже, сам нуждается в разделе репозиториев, определенном где-то.
Мне кажется, что это ошибка с тем, как Netbeans обращается с ребенком проекты. Я предполагаю, что он ищет в расположении по умолчанию расположение для родителя (../ПФЛ.xml) и когда он не может найти его, пытается искать его в определенных репозиториях. Поскольку он не определен, он задыхается.
Netbeans, похоже, игнорирует настройку зеркал при попытке найти Родительский POM.