无法构建Shopizer项目

时间:2016-04-10 13:38:05

标签: java spring maven shopizer

当我在Shopizer的项目mvn install内执行sm-core时,我收到以下错误:

[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]  

我该如何解决?

1 个答案:

答案 0 :(得分:4)

Shopizer项目实际上是multi-module Maven project。这意味着它有一个根pom.xml of packaging pomdeclares several <modules>

这些模块本身就是Maven项目,通常在这个根文件夹下找到子文件夹,这就是这里的情况:有4个子文件夹,它们正好是4个Maven模块。要编译这些类型的项目,您需要从根项目调用Maven,在本例中为shopizer

你可能会问为什么。在多模块Maven项目中,通常存在相互依赖关系:一个模块依赖于另一个模块。在这种情况下,您尝试构建scm-corehas dependencies on both sm-core-model and sm-core-modules模块是该项目的两个模块。因此,当您构建它时,Maven将尝试在您的本地存储库中查找这些工件。问题是它找不到它们:它们以前从未构建过。 Maven也不会在公共存储库中找到它们,因为我们正在处理SNAPSHOT依赖项。解决方案是在顶层项目上开始构建:Maven将正确地命令反应器,以便在构建scm-core时,这两个依赖项都将构建。

简单地说:在多模块Maven项目中,您几乎总是应该从根POM调用Maven命令。

要解决您的问题,您可以签出2.0.3 branch(这是最新的分支)并在根POM上调用mvn clean install。我成功了。