当前位置: 首页 > 知识库问答 >
问题:

我如何强制Maven使用我的本地存储库,而不是去远程repos检索工件?

阎辰钊
2023-03-14

我正在Mac Yosemite上使用Maven3.3.3和Java8。我有一个多模块的项目。

    <modules>
            <module>first-module</module>
            <module>my-module</module>
                …
    </modules>
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building my-module 87.0.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
Downloading: https://my.remoterepository.com/nexus/content/repositories/snapshots/org/mainco/subco/first-module/87.0.0-SNAPSHOT/maven-metadata.xml
Downloading: http://download.java.net/maven/2/org/mainco/subco/first-module/87.0.0-SNAPSHOT/maven-metadata.xml
Downloaded: https://my.remoterepository.com/nexus/content/repositories/snapshots/org/mainco/subco/first-module/87.0.0-SNAPSHOT/maven-metadata.xml (788 B at 0.9 KB/sec)
Downloading: https://my.remoterepository.com/nexus/content/repositories/snapshots/org/mainco/subco/first-module/87.0.0-SNAPSHOT/first-module-87.0.0-20151104.200545-4.pom
<profile>
    <id>releases</id>
    <activation>
        <property>
            <name>!releases.off</name>
        </property>
    </activation>
    <repositories>
        <repository>
            <id>releases</id>
            <url>https://my.remoterepository.com/nexus/content/repositories/releases/</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>
</profile>
<profile>
    <id>snapshots</id>
    <activation>
        <property>
            <name>!snapshots.off</name>
        </property>
    </activation>
    <repositories>
        <repository>
            <id>snapshots</id>
            <url>https://my.remoterepository.com/nexus/content/repositories/snapshots/</url>
            <releases>
                <enabled>false</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
    </repositories>
</profile>
Daves-MacBook-Pro-2:my-module davea$ ls -al ~/.m2/repository/org/mainco/subco/first-module/87.0.0-SNAPSHOT/first-module-87.0.0-SNAPSHOT.jar 
-rw-r--r--  1 davea  staff  10171 Nov  5 10:22 /Users/davea/.m2/repository/org/mainco/subco/first-module/87.0.0-SNAPSHOT/first-module-87.0.0-SNAPSHOT.jar
Daves-MacBook-Pro-2:my-module davea$ mvn clean install
[INFO] Scanning for projects...
[WARNING] 
[WARNING] Some problems were encountered while building the effective model for org.mainco.subco:my-module:jar:87.0.0-SNAPSHOT
[WARNING] 'build.plugins.plugin.(groupId:artifactId)' must be unique but found duplicate declaration of plugin org.apache.maven.plugins:maven-antrun-plugin @ org.mainco.subco:my-module:[unknown-version], /Users/davea/Documents/sb_workspace/my-module/pom.xml, line 678, column 12
[WARNING] 
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING] 
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
[WARNING] 
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building my-module 87.0.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
Downloading: https://my.remoterepository.com/nexus/content/repositories/snapshots/org/mainco/subco/first-module/87.0.0-SNAPSHOT/maven-metadata.xml
Downloading: http://download.java.net/maven/2/org/mainco/subco/first-module/87.0.0-SNAPSHOT/maven-metadata.xml
Downloaded: https://my.remoterepository.com/nexus/content/repositories/snapshots/org/mainco/subco/first-module/87.0.0-SNAPSHOT/maven-metadata.xml (788 B at 0.8 KB/sec)
Downloading: https://my.remoterepository.com/nexus/content/repositories/snapshots/org/mainco/subco/first-module/87.0.0-SNAPSHOT/first-module-87.0.0-20151106.043202-8.pom
Downloaded: https://my.remoterepository.com/nexus/content/repositories/snapshots/org/mainco/subco/first-module/87.0.0-SNAPSHOT/first-   module-87.0.0-20151106.043202-8.pom (3 KB at 21.9 KB/sec)
Downloading: http://download.java.net/maven/2/org/mainco/subco/subco/87.0.0-SNAPSHOT/maven-metadata.xml
Downloading: https://my.remoterepository.com/nexus/content/repositories/snapshots/org/mainco/subco/subco/87.0.0-SNAPSHOT/maven-metadata.xml

共有1个答案

魏鸿哲
2023-03-14

依赖项具有快照版本。对于快照,Maven将检查本地存储库,如果在本地存储库中找到的工件太旧,它将尝试在远程存储库中找到更新的工件。这可能就是你看到的。

请注意,此行为由存储库配置中的updatepolicy指令控制(对于快照存储库,默认情况下是daily)。

 类似资料:
  • 问题内容: 我的Maven配置有一个小问题。此处的所有其他问题和答案都不能解决我的问题,因此,我开始了一个新问题。 我的问题是,我的Maven没有使用本地存储库。它总是从远程存储库中获取工件。 当下载工件或构建项目时,它将安装在本地存储库中,因此路径正确。 问题是:当我构建一个SNAPSHOT项目时,它仅安装在本地存储库中(应该是这样,不想每次都将其发布在我的关系上)。当我在pom.xml中构建另

  • 我的Maven配置有一个小问题。这里所有其他的问题和答案都没有解决我的问题,所以我要开始一个新的问题。 我的问题是,我的Maven没有使用本地存储库。它总是从远程存储库中获取工件。 当下载工件或构建项目时,它被安装在本地存储库中,因此路径是正确的。 问题是:当我构建一个快照项目时,它只安装在本地存储库中(应该是这样的,不要每次都在我的nexus上发布)。当我构建另一个项目时,在pom.xml中有前

  • 问题内容: 如果我有Maven工件信息(GroupId,ArtifactId,版本),我如何以编程方式(使用Java)从本地存储库中检索该Artifact? 具体来说,我需要能够连接到Maven存储库并创建/检索org.apache.maven.artifact.Artifact,以便检索与Artifact相关的文件。 我已经研究了m2e源代码,但是MavenImpl.java(提供Artifac

  • 问题内容: 是否有任何东西可以将整个远程存储库(例如,从http://repo1.maven.org/maven2/)获取到我的本地存储库(至)? 问题答案: 从http://maven.apache.org/community.html: 做个好行者 内置于Maven核心体系结构中的公共存储库的概念使其必然以社区为中心。Maven用户可以做一些简单的事情来帮助保持社区的繁荣。 成为一种公共存储库

  • 因此,在本教程之后,我使用Dropbox创建了自己的远程存储库。此外,我使用以下命令将第三方JAR部署到我的存储库中。 mvn部署:部署-文件-Dgroup pId=com.prowritingaid.java-DartifactId=pro_writing_aid_java-Dversion=2.0.0-D包装=jar-Dfile=pro_writing_aid_java-2.0.0.jar-D

  • 我有一个多模块项目,其中两个子模块中的一个依赖于另一个。这个问题意味着应该处理这些依赖关系。 在我的机器上的本地级别上一切都很好(在Eclipse内部和命令行上)。但是,当我更新修改第二个模块所需代码的模块并提交到我的github存储库时,第二个模块将无法构建Travis CI。我将问题追溯到这样一个事实,即它正在从存储库下载其依赖项,而不是使用它刚刚编译的存储库。 和父pom.xml的摘录: 完