Maven多模块项目中的源依赖 - 无法自行编译模块

时间:2016-01-31 18:29:25

标签: java maven

我有一个多模块Maven项目,其中模块FooBar是Java包。 Foo包含Bar继承的类。 FooBar都有测试和调试的主要方法。模块位于文件夹Project

使用mvn clean package编译整个项目可以正常工作。但是不能在Bar模块中使用相同的命令进行编译。

Project中有一个包含以下内容的pom.xml:

...
<module>Foo</module>
<module>Bar</module>
<module>FooBar</module>
...

Barpom.xml包含:

    ...
    <dependency>
        <groupId>com.example.foo</groupId>
        <artifactId>Foo</artifactId>
        <version>1.0.0-SNAPSHOT</version>
    </dependency> 
    ...

当我尝试使用Maven从modules文件夹中编译Bar时,我得到的错误是找不到兄弟包Foo。下载的其他依赖项工作正常。

我做错了什么?

我对Maven很新,这似乎是一个初学者错误所以我认为有一个简单的答案。

1 个答案:

答案 0 :(得分:2)

为了编译Bar模块,必须至少从本地Maven存储库中检索人工制品com.example.foo:Foo:1.0.0-SNAPSHOT

在执行目标install时,人工制品会保存在本地存储库中。由于您只在整个构建中执行clean package,因此不会发生这种情况。

您必须在人工制品install或整个项目上执行clean installFoo。每次更新版本时,您还必须重建整个项目(或至少是本地依赖项)。