2015-09-21 2 views
3

У меня есть мультимодульный проект maven с 5 модулями. Модули являются многоуровневыми, так что некоторые из них зависят от первого, который строит (это мои классы моделей), а некоторые зависят от вторых построенных (это основные классы приложений). Последний, который строит, - это приложение Spring WebMVC, которое зависит от всех остальных модулей.mvn --resume-from downloads snapshots

Проблема, с которой я столкнулся, находится в флагом Maven's --resume-from. Похоже, я этого не делаю. Я должен непонимаю, что означает слово «резюме» в этом контексте, как я ожидал бы этого, ну, резюме что-то.

Если я запустил mvn verify, и он не работает в подмодуле rest-api, он сообщает мне, что я могу возобновить, запустив mvn --resume-from :rest-api verify. Когда я это делаю, он загружает снимки из других модулей моего проекта, от которого зависит rest-api. Это так невероятно не что я хочу, чтобы это было смешно. Я хотел, чтобы он снова использовал встроенные банки, которые он только что построил, как 5 секунд назад, внутри этой локальной проверки проекта!

Кто-нибудь знает, что характер моего непонимания здесь? Я злоупотребляю межмодульными зависимостями? Я полностью не понимаю, что означает --resume-from? Есть ли еще какой-то аргумент, чтобы делать то, что я хочу?

+0

Что именно говорится в сообщении? Можете ли вы вставить здесь вывод сообщения? – khmarbaise

+0

Нет специального сообщения, команда действительна. Он просто не делает то, что я думаю, что он должен делать. Он «возобновляется» из указанного модуля, но для всего, что было до этого модуля в последовательности сборки, он загружает последнюю версию SNAPSHOT вместо использования версии из целевого каталога подмодуля. – Martin

ответ

0

Используйте mvn install вместо mvn verify, как только после этапа install, Maven сможет вытащить его из вашего местного репо.

Возможно, вам также нужен вариант --also-make-dependents.

См. this blog для получения полной информации.

+0

Проблема не в том, что мне нужно построить что-то, чего у него иначе не было бы, проблема в том, что я не хочу, чтобы он что-то создавал. Скажем, у меня есть проект с двумя модулями maven. Я запускаю «mvn verify», и один проект построен и прошел тесты, а второй не дает некоторых тестов. Когда я запускаю «mvn verify -rf second-module», я не хочу, чтобы он перестраивал и повторно тестировал первый модуль, я уже знаю, что он работает. Проблема в том, что Maven не знает, использовать банку, которая была построена последней успешной локальной сборкой для первого модуля - вместо этого загружает снимок. – Martin

+0

@Martin: Ах, ладно ... тогда, я думаю, вы предпочтете использовать 'mvn install' вместо' mvn verify'. Только после фазы «install» Maven сможет вытащить его из вашего локального репо. Соответственно изменил мой ответ. –