В настоящее время я обнаружил, что использование 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.