如何防止Maven每次都下载工件?

时间:2014-02-24 14:39:38

标签: maven dependencies maven-3 dependency-management

我正在使用Maven 3.1.1。在我的一个项目中,我引用了另一个项目......

    <dependencies>
            <dependency>
                    <groupId>org.mainco.subco</groupId>
                    <artifactId>myprojectA</artifactId>
                    <version>${project.version}</version>
            </dependency>

以上内容取决于我的其他几个项目。但是,当我运行“mvn clean install”时,Maven会尝试下载这些工件而不是仅仅使用我本地存储库中的内容。如果我的本地存储库中不存在Maven,我如何让它只下载?这是我所看到的输出......

davea$ mvn clean install
[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building subco admin Module 57.0.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
Downloading: http://download.java.net/maven/2/org/mainco/subco/myprojectA/57.0.0-SNAPSHOT/maven-metadata.xml
Downloading: http://download.java.net/maven/2/org/mainco/subco/subco/57.0.0-SNAPSHOT/maven-metadata.xml
Downloading: http://download.java.net/maven/2/org/mainco/subco/projectB/57.0.0-SNAPSHOT/maven-metadata.xml
Downloading: http://download.java.net/maven/2/org/mainco/subco/projectC/57.0.0-SNAPSHOT/maven-metadata.xml
[INFO]

6 个答案:

答案 0 :(得分:64)

如果您使用离线标记,它将使用本地仓库中的库。

mvn clean install -o 

答案 1 :(得分:18)

您可以通过在$USER_HOME/.m2/settings.xml文件中配置存储库来控制更新频率。具体而言,将updatePolicy更改为导致更新频率降低的值。

This Stackoverflow answer有更详细的信息。

答案 2 :(得分:2)

如果要更新某些jar,但不更新本地安装的jar的快照,则应使用the -nsu (--no-snapshot-updates) flag来防止Maven从主存储库中获取最新的快照。使用>>> vars(C)['c'] 'cla' >>> vars(C)['b'] ... KeyError: 'b' 将阻止它从远程存储库中获取其他升级和(通常)必要的Maven jar。

答案 3 :(得分:1)

根据我的经验,一旦maven“决定”必须从特定服务器下载文件,这一切都无效。

配置updatePolicy是另一个建议,但为了成功,您应该转到jar所在的本地存储库内的文件夹,并删除名为“_maven.repositories”的文件。删除以“.lastUpdated”结尾的文件。如果您使用的是eclipse插件,也可以使用“m2e-lastUpdated.properties”。

答案 4 :(得分:0)

您可以在

中设置存储库
  

的settings.xml

你的maven安装文件。

Maven configuration网页上了解详情。

答案 5 :(得分:0)

我知道这听起来很荒谬;-)但是,一种方法是将Maven存储库的DNS条目设置为localhost,因为主机无法解析,所以它失败了100%。

/ etc / hosts

# Comment this in/out as needed.
127.0.0.1 download.java.net

请注意,如果您不想使用本地主机,则可以使用IP mentioned here之一,例如254.0.0.1。这些IP保留供将来使用,因此未使用。