поэтому я начал использовать maven (с eclipse и локальной реализацией Sonatype) не так давно, после того, как я прошел через первоначальную боль, хотя все работало... видимо, нет!
У меня есть основной проект POM и все мои дочерние POM (я использую «плоскую» иерархию, поэтому все подпроекты находятся в той же папке, что и родительский POM). Кажется, это работает нормально.
Подпроект, в котором все началось, «выпущено» и протестировано до того, как я начал использовать Maven. Я пошел к maven, чтобы решить свои проблемы с "зависимостями"... или, скорее, сделать их более сложными в этом случае.
Большая часть материала «Maven», похоже, работает нормально, но я не могу разрешить зависимости моих «подпроектов», которые были выпущены в мой локальный ms/repository.
Каждый день я запускаю eclipse и сталкиваюсь с одними и теми же проблемами, у меня «невозможно разрешить импорт» во всех моих личных библиотеках и во всех тех, которые я использую для них (например, Log4j, DDlUtils и т. д.).
Я думал, что весь смысл maven в том, что я смогу поместить объявление импорта для библиотеки, добавить «groupID» и другие вещи в дочерний POM (или родительский POM). А затем автоматически загрузите все jar-файлы, когда я запускаю mvn install против родителя.
Однако каждый день я обнаруживаю, что мне приходится повторно вставлять путь сборки к библиотекам (внутренним и внешним) через рабочее пространство eclipse и указывать им расположение библиотек, которые я скачал, поскольку maven не может найти их нигде.
В частности, при запуске теста Junit я могу запустить их из рабочей области (используя запуск от имени junit), и все они проходят нормально. Но если я попытаюсь запустить их с помощью теста mvn, я получу сообщение о том, что java.lang; NoClassDefFoundError: org/junit/Assert (и это то же самое, что и внутри eclipse, выполняющего тест mvn, или из CLI) с сообщением об ошибке на выходе. из не удалось выполнить цель org.apache.maven.plugins:maven.surfire-plugin:2.10:проверьте, что POM и jar находятся в моем M2_REPO, и я могу найти его, когда я ищу в sonatype, почему maven не может найти что-то, что является частью собственной системы, существует в своем репо.
но это, очевидно, отлично работает, когда я запускаю eclipse и указываю его на независимо загруженную библиотеку junit.
Я не знаю, какая дополнительная информация вам может потребоваться, и мне явно чего-то не хватает либо в плагине m2e, либо в моей установке maven, либо в sonatype.
пожалуйста, помогите, у меня начинают выпадать волосы! и вскоре может быть вынужден вернуться к решению ant/ivy (но не хочу изучать «еще один инструмент» (в данном случае ivy).
заранее спасибо
Дэйвид.
пс. я на платформе Windows XP
редактировать... могу ли я заставить maven собрать и выпустить jar и pom, даже если он думает, что не проходит тесты (это не так, поскольку я делаю их вручную, и они проходят очень хорошо).
Если я посмотрю на вкладку «эффективный POM» моего родительского POM, указанного выше плагина там нет. Я предполагаю, что это означает, что это параметр конфигурации maven, но где его добавить и почему он не выполняется автоматически, когда я запускаю свой первый набор тестов maven?
редактировать 2....
Я только что нашел это на странице комментариев плагина apache (http://maven.apache.org/plugins/maven-surefire-plugin/plugin-info.html), поэтому я запустил код в CLI, mvn surefire:help - Ddetail=true -Dgoal=test было загружено много материала, и теперь тесты выполняются, но они терпят неудачу в maven? (помните, что они проходят при запуске из eclipse, используя «запуск от имени теста junit»)... так что это почти решение...