我有this问题中提到的情况。
我有一个带有父项目P和两个子模块A和B的多模块Maven项目。当我只有A作为子模块时,它工作正常。我在主项目中添加了一个新的源文件夹,创建了一个包并添加了一个类(我在这里做错了什么?),让我们称之为模块B.现在我将包中的类导入到包A中的类中,但是A的pom没有得到更新,包括B作为依赖,因此当我尝试编译父项目时,它会给出错误未定义的符号B.
编辑:添加poms和代码
这是项目A的pom
<dependencies>
<dependency>
<groupId>javax.slee</groupId>
<artifactId>jain-slee</artifactId>
</dependency>
<dependency>
<groupId>org.mobicents.servers.jainslee.core</groupId>
<artifactId>fault-tolerant-ra-api</artifactId>
<version>2.6.0.FINAL</version>
</dependency>
<dependency>
<groupId>org.mobicents</groupId>
<artifactId>hello-slee-world-sbb</artifactId>
<version>1.0</version>
</dependency>
</dependencies>
现在它提到了B的依赖性。以下是项目A中B的参考。
import BPackage.*;
这就是我在A中使用B的方式。
BPackage中只有一个名为BClass的类。现在我问我是否错误地添加了包,即我是否需要添加一些东西?这样就可以创建它的pom并在A中添加它的依赖。
此外,我想在编译父节点时同时构建B和A,所以在这种情况下,我想我需要在父节点中添加A.这是父母的pom
<modules>
<module>sbb</module>
<module>customRAType-ratype</module>
<module>customAdaptor-ra</module>
<module>du</module>
</modules>
customAdaptor-ra是项目A
答案 0 :(得分:4)
您的每个项目都需要有一个pom.xml。顶级项目需要
<modules>
<module>project1</module>
<module>project2</module>
</modules>
如果project2
取决于project1
,则需要在project2的pom.xml中为其定义<dependency/>
。