我有一个父项目多模块Maven项目P和三个子模块A,B和C.这两个B和C是战项目,都依赖于A.
我可以输入mvn compile在P和拥有所有的子模块正确的编译的.当我想为特定模块执行操作时,问题就来了.
我希望能够为项目打包一个war B,但是当我从B目录运行package命令时,它会抱怨它找不到依赖项A.
我从这个问题中理解:Maven和依赖模块可能Maven并不是真的设计用于这种类型的依赖解析,但这引出了如何打包的问题B?
mvn package我真的想要的时候是否必须运行整个项目层次结构B?
每次要打包时,是否必须将A的快照安装到本地存储库中B?
当A仍处于活跃开发阶段时,第二种情况并不是很有趣.
这里有什么最佳做法?
我在这个问题中提到了一个情况。
我有一个多模块 Maven 项目,其中包含一个父项目 P 和两个子模块 A 和 B。当我只有 A 作为子模块时,它运行良好。我在主项目中添加了一个新的源文件夹,创建了一个包并添加了一个类(我在这里做错了什么?),我们称之为模块 B。现在我将包 B 中的类导入到包 A 中的类中,但是A 的 pom 没有更新以包含 B 作为依赖项,因此当我尝试 mvn 编译父项目时,它给出了错误未定义符号 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>
Run Code Online (Sandbox Code Playgroud)
现在它提到了 B 的依赖项。这是项目A中B的参考。
import BPackage.*;
Run Code Online (Sandbox Code Playgroud)
这就是我在 A 中使用 B 的方式。
BPackage 中只有一个名为 BClass 的类。现在我问我是否错误地添加了包,即我需要在 maven 添加一些东西吗?以便创建它的 pom 并将其依赖项添加到 A 中。
此外,我想在编译父项时同时构建 B …