2016-04-10 3 views
2

Когда я исполняю mvn install внутри проекта sm-core из Shopizer, я получаю ошибку ниже:Невозможно построить проект Shopizer

[ERROR] Failed to execute goal on project sm-core: 
Could not resolve dependencies for project 
com.shopizer:sm-core:jar:2.0.3-SNAPSHOT: The following 
artifacts could not be resolved: com.shopizer:sm-core-model: 
jar:2.0.3-SNAPSHOT, com.shopizer:sm-core-modules:jar:2.0.3-SNAPSHOT: 
Failure to find com.shopizer:sm-core-model:jar:2.0.3-SNAPSHOT 
in http://maven.springframework.org/snapshot was 
cached in the local repository, resolution will not be 
reattempted until the update interval of 
org.springframework.maven.snapshot has elapsed or updates 
are forced -> [Help 1] 

Как я могу решить эту проблему?

ответ

4

Проект Shopizer на самом деле является multi-module Maven project. Это означает, что он имеет корень pom.xmlof packaging pom и declares several <modules>.

Эти модули, которые сами являются проектами Maven, обычно находятся в подпапках под этой корневой папкой, что здесь и есть: есть 4 подпапки, которые являются именно 4 модулями Maven. Чтобы скомпилировать такие проекты, вам нужно вызвать Maven из корневого проекта, в данном случае shopizer.

Вы можете спросить, почему. В многомодульном проекте Maven обычно существуют взаимозависимости: один модуль зависит от другого. В этом случае модуль scm-core, который вы пытаетесь построить has dependencies on both sm-core-model and sm-core-modules, которые являются двумя модулями этого проекта. Поэтому, когда вы его создаете, Maven попытается найти в вашем локальном хранилище эти артефакты. Проблема в том, что он их не найдет: они никогда не строились раньше. Maven также не найдет их в публичном репозитории, потому что мы имеем дело с зависимостями SNAPSHOT. Решение состоит в том, чтобы начать сборку на верхнем проекте: Maven будет правильно заказывать реактор, чтобы при построении scm-core обе эти зависимости были построены.

Проще говоря: в мультимодульном проекте Maven вы должны всегда всегда вызывать команды Maven из корневого POM.

Чтобы решить вашу проблему, вы можете проверить 2.0.3 branch (которая является последней ветвью) и вызвать mvn clean install на корневой POM. Я сделал это успешно.

+3

Ответ С разъяснением. Редко в наши дни, спасибо! @ user1506424, я думаю, что решил вашу оригинальную проблему? Я рекомендую вам нажать «Принять» и задать новые вопросы! :-) –

Смежные вопросы