Как правильно использовать m2ecipse и maven в Idea IDE? - PullRequest
0 голосов
/ 20 апреля 2011

В настоящее время я обнаружил, что использование Maven в нашей команде крайне неэффективно. Итак, у меня есть этот вопрос.

У нас большой проект, состоящий из 300-500 модулей, которые организованы Maven 3, я разделил его на 10 подпроектов, поэтому у каждого подпроекта есть корень pom.xml. Скажем, они - проект1, проект2, .. проектN. Я в основном работаю на project3 состоит из 30 модулей, тогда они зависят от project4 и project5.

project3:
    module3-1  SNAPSHOT
    module3-2  SNAPSHOT
    module3-3  SNAPSHOT
    module3-4  SNAPSHOT
    module3-5  SNAPSHOT
    module3-6  RELEASE
    ...
    module3-30 RELEASE

В проекте 3 некоторые не так часто меняющиеся модули выпускаются, а некоторые (module3-1..3-5) меняются очень часто, поэтому я использую версии SNAPSHOT здесь.

Мы запустили сервер Archiva для управления всеми артефактами, включая выпущенную версию и снимки.

Теперь проблема в том, что когда я что-то изменил в своем project3, обычно я хотел бы развернуть весь подпроект:

[my-ubuntu] ~/project3/$ mvn clean; mvn deploy
...
EVERYTHING SUCCEED
[my-ubuntu] ~/project3/$ 

Я ожидаю, что все версии снимков должны автоматически загружаться и обновляться на машинах других людей.

В командной строке все работает как положено:

[john's ubuntu] ~/project4/$ mvn package
...
download http://archiva-server/snapshots/project3/...-SNAPSHOT... [SUCCEEDED]
...
EVERYTHING SUCCEED
[john's ubuntu] ~/project4/$ 

Тем не менее, Джин ненавидит командную строку, поэтому он использует M2eclipse, но M2eclipse не будет автоматически обновлять снимки. Я пробовал:

TRY 1: 
    Disable dependency resolution
    Enable dependency resolution
    (This take maybe 30 minutes, and make eclipse hang, so I don't like. And it seems not work most of time, not download the latest snapshots sometimes)

TRY 2:
    Update all dependnecies
    Refresh projects
    (This take about maybe 5 minutes, but not work some time, not download the latest snapshots sometimes)

TRY 3:
    Delete all projects from eclipse workspace
    Re-import all projects
    (This take maybe 10 minutes, and most "clean" way, though not very fast but okay)
    (But not download the latest snapshots sometimes)

TRY 4:
    [gin's ubuntu] ~/project4/$ cd ~/.m2/repository/../project3
    [gin's ubuntu] ~/.m2/repository/../project3 $ find -name 'resolve-*' -delete
    Refresh eclipse projects
    (This take about maybe 5 minutes? Well I haven't time it, though.)
    (This is the best resolution in my experience, it downloads all snapshots everytime, so it's the final-resolution, well sounds like problem-killer.)

Итак, по моему личному опыту, удаление resolve-* файлов в локальном хранилище кажется лучшим разрешением, но это просто нехорошо.

По сравнению с вызовом командной строки mvn, все IDE отстой .. Ну, может быть, я не справился с Maven правильно?

Я хотел бы знать, как лучше всего использовать Maven в IDE Eclipse / Idea.

1 Ответ

1 голос
/ 20 апреля 2011

Сначала вы должны подумать об организации ваших проектов и их связи друг с другом.Возможно, вам стоит рассказать о многомодульных сборках, чтобы лучше справляться с некоторыми ситуациями.

Более того, вам нужно изменить конфигурацию репозиториев для прямой загрузки версий SNAPSHOT.Измените файл settings.xml, в частности политику обновления .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...