如何使用maven从模块访问文件,而无需在本地.m2存储库中进行搜索。中央maven存储库?

时间:2016-09-23 18:28:05

标签: maven

我有两个项目。项目A& B.项目B依赖于项目A. 要运行项目B,我必须在项目B的pom.xml中添加项目A的依赖项。

如果我从项目A更改了某些内容,我必须再次安装mvn以使用项目A的最新代码更新本地存储库。然后我可以运行项目B.

我可以在不进行mvn安装的情况下访问项目B中项目A的更改代码吗?

1 个答案:

答案 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