как преодолеть эти проблемы maven / m2eclipse - PullRequest
3 голосов
/ 31 марта 2012

(во-первых, я признаю, я не люблю maven / m2eclipse, но было бы не так плохо, если бы я мог понять, как преодолеть эти проблемы)

Я использую maven / m2eclipse.m2eclipse - единственный хороший способ засосать мавенские банки.Некоторые из них могут не иметь решений (но я надеюсь удивиться).Может быть, решение № 9 решает их все?

ПРОБЛЕМЫ

  1. Когда я запускаю "mvn clean package", я замираю в воде, пока выполняю модульное тестирование взатмение в то время как maven строит, как я люблю многозадачность, но maven мешает мне здесь.Как обойти это?

  2. Я перемещаю eclipse, чтобы указать на eclipsegen / classes, но затем в модульных тестах все еще используются классы в target / classes, поэтому я не использую мой последний код, который ятолько что отредактировано в eclipse, и отладка не выстраивается, а наступает на пустые строки, в которых нет кода.

  3. Если я слегка коснусь pom.xml, bam, он будет создан, когдаЯ не очень хочу этого, и поворот автоматических сборок, похоже, не помог.

  4. Вдобавок к # 3 я получаю случайные сборки pom, загружающие jar-файлы, которые просто замораживают затмения от любых действий по загрузке jar-файлов (я немного многозадачен, так что это расстраивает меняконец)

  5. Если я хочу изменить или сделать что-то действительно нестандартное, в чем я нуждаюсь, ответ обычно - создать плагин Java, но тогда мне потребуется создать другой проект контроля версий с другим автоматизированнымbuild гарантирует, что build помечает все версии, чтобы мы могли воспроизвести проблемы с определенными версиями.(в муравье я просто изменяю xml для создания пользовательских вещей).

  6. (я слышал, что на этот раз ошибка открыта на 5 лет).глобальные исключения, потому что люди в нашем проекте продолжают ломать вещи, когда они включают в себя новые вещи, которые зависят от log4j, и всасывание этой библиотеки разрушает нас, поэтому мы хотим глобально исключить ее, чтобы люди перестали ломать проект при добавлении новых вещей (у IVY есть глобальные исключения, почемуне maven !!!!)

  7. xml-код для генерации из xsd в maven примерно в 2-3 раза больше кода, выполняемого в ant.Почему это?Я думаю, что это не должно быть так.

  8. Запуск моего модульного теста говорит, что xxxx-12.0.8-SNAPSHOT отсутствует, но в моем файле pom.xml ясно сказано 12.0.9-SNAPSHOT нет .8.то есть.m2eclipse попадает в какое-то странное состояние, и я трачу впустую еще больше времени, потому что кто-то выбрал maven

  9. (мне не нравится IvyDE по тем же причинам, по которым я не люблю m2eclipse).В maven, есть ли способ, как в Ivy, сказать при сборке MOVE ALL jar в target / lib, чтобы я мог удалить m2eclipse (если бы у maven была эта единственная функция, я думаю, что все мои проблемы могли бы уйти) ....ЭТО особенность плюща, которая, кстати, потрясающая !!!!ПРИМЕЧАНИЕ: я только что понял, что удаление m2eclipse и запуск "mvn eclipse: clean eclipse: eclipse" на самом деле не вариант, так как в этом проекте мне пришлось импортировать 30 проектов.Я думаю, что для отдельных проектов это отличное решение.

  10. Нет ли способа, подобного ant, регистрировать команду, которая была запущена в целях отладки?( в maven, как записать команду, которая была запущена? )

Я действительно должен смотреть на gradle (я слышал, что это лучший из maven и ant) ​​как теорияо maven звучало замечательно, но вы можете сказать, что было много споров по этому поводу (что обычно указывает на плохой инструмент).Хорошие инструменты, которые действительно помогают, обычно имеют некоторые противоречия, но не так много, как у maven, так что это заставляет меня думать дважды, так как я не хочу облажаться с парнем, который берет на себя мой проект (и я знаю, что муравей сработает).Многие люди, я думаю, даже не считают это.Они думают: «У меня все хорошо, так почему же следующий парень не будет в порядке».

Есть какие-нибудь идеи, как решить вышеуказанные проблемы?

Ответы [ 3 ]

1 голос
/ 01 апреля 2012

Отказ от ответственности: мне нравятся Maven и M2Eclipse, и я не испытывал ни одной из проблем, о которых вы упомянули. В общем, M2Eclipse не сильно мешает тому, как я работаю.

Одной вещью, которая может помочь, является отключение Maven Builder для проектов (щелкните проект правой кнопкой мыши, выберите «Свойства», затем «Строители»). Это избавит вас от многих проблем, на которые вы жалуетесь.

Еще одна вещь, которая может вам помочь (и приближается к # 9 в вашем списке: удалите M2Eclipse и используйте mvn eclipse:eclipse, который сгенерирует файлы Eclipse .project и .classpath, которые включают все зависимости как зависимости проекта Eclipse Каждый раз, когда вы добавляете или изменяете зависимости, вам придется снова запускать mvn eclipse:eclipse. Попробуйте ...

1 голос
/ 02 апреля 2012

О # 9, если у вас есть 2 варианта:

  • Выполнить

    mvn зависимость: копии-зависимости

    См. http://maven.apache.org/plugins/maven-dependency-plugin/copy-dependencies-mojo.html для параметров настройки.Вам нужно будет установить свой путь к классу Eclipse вручную, чтобы он указывал на вновь скопированные банки.

  • Используйте расширения JDT JBoss Tools, чтобы получить функцию «Материализация библиотеки» (см. http://docs.jboss.org/tools/whatsnew/core/core-news-3.3.0.M4.html). Вам просто нужно будет щелкнуть правой кнопкой мыши библиотеку Maven Classpath, выбрать папку назначения, выбрать (и переименовать) нужные файлы jar, и вы получите в Eclipse проект, свободный от m2e (все еще действующий проект Maven)в командной строке). Вы можете установить JBoss Tools JDT Extensions с http://download.jboss.org/jbosstools/updates/development/indigo/

0 голосов
/ 31 марта 2012

Хотя похоже, что более быстрый ПК решит некоторые ваши проблемы, я согласен, что плагин m2eclipse отстой (хотя он затягивает чуть меньше, так как eclipse indigo). Из-за этого я некоторое время перешел на использование Intellij, но через месяц я снова переключился на затмение (для меня затмение все еще остается лучшим, несмотря на m2eclipse).

Я использую m2eclipse, чтобы иметь возможность работать в затмении, но не более того. Все мои сборки maven (package, install, что угодно) я запускаю с самим maven (командная строка) просто потому, что было слишком много случаев, когда результат был разным (работа в одном, а не в другом, и maven всегда был корректен)

Так что, извините, нет прямых ответов на ваши вопросы, только несколько советов:

1) сделать это вне затмения
2) придерживаться стандартов maven (цель / классы); это сделает вашу жизнь намного проще
6) использование управления зависимостями в родительском pom может немного помочь
8) если вы столкнулись с той же проблемой при запуске из командной строки, то проблема в вашем pom (решите с помощью mvn dependency: tree), если нет, см. 1
9) возможно, здесь есть вариант сборки, но я бы не рекомендовал ваш подход

...