我有两个项目。项目A& B.项目B依赖于项目A. 要运行项目B,我必须在项目B的pom.xml中添加项目A的依赖项。
如果我从项目A更改了某些内容,我必须再次安装mvn以使用项目A的最新代码更新本地存储库。然后我可以运行项目B.
我可以在不进行mvn安装的情况下访问项目B中项目A的更改代码吗?
答案 0 :(得分:0)
没有。您无法访问更新的代码。这是因为,当您构建maven应用程序时,它将从.m2存储库获取所有依赖项。如果它没有找到依赖项,那么它将搜索您的远程存储库
在您的情况下,当您更新A的代码而不构建它时,更新的工件将不会在.m2存储库中可用。现在,如果您构建项目B,那么它将尝试从.m2存储库中获取项目A artiufact。由于在修改代码后没有构建A,因此B将获取.m2文件夹中当前存在的工件,即带有旧代码的工件。
您可以使用的另一种方法是拥有父pom。这只是一个聚合器pom,它将为你的两个模块执行pom.xml。例如:
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.sonatype.mavenbook.multispring</groupId>
<artifactId>simple-parent</artifactId>
<version>1.0</version>
<packaging>pom</packaging>
<modules>
<module>module-A</module>
<module>module-B</module>
</modules>
</project>
请注意,此包装应为 pom 。