我使用的是 Maven 3.1.1。在我的一个项目中,我引用了我的另一个项目......
<dependencies>
<dependency>
<groupId>org.mainco.subco</groupId>
<artifactId>myprojectA</artifactId>
<version>${project.version}</version>
</dependency>
以上依赖于我的其他几个项目。但是,当我运行“mvn 全新安装”时,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]
如果您使用脱机标志,它将使用本地存储库中的库。
mvn clean install -o
您可以通过在 $USER_HOME/.m2/设置.xml
文件中配置存储库来控制更新频率。具体来说,将更新策略
更改为导致更新频率较低的值。
这个Stackoverflow答案有更多细节。
如果您想更新一些jar,但不想更新本地安装的jar的快照,那么您应该使用< code >-nsu (< code >-no-snapshot-updates )标志来防止Maven从主存储库中获取最新的快照。使用< code>-o将阻止它从远程存储库中获取其他升级和(通常)基本的maven jars。