gpt4 book ai didi

java - 下载依赖项时如何让 maven 提前超时?

转载 作者:IT老高 更新时间:2023-10-28 21:13:03 25 4
gpt4 key购买 nike

我正在使用 Apache Maven 构建我的项目并配置了一个自定义存储库,但是当它到达存储库时它会挂起很长时间

下载:http://maven.mycompany.com/m2/org/springframework/spring/2.5.6/spring-2.5.6.pom

几分钟后它会从中央仓库下载它

下载:http://repo1.maven.org/maven2/org/springframework/spring/2.5.6/spring-2.5.6.pom12K 下载(spring-2.5.6.pom)

我希望超时比这快得多。所有较新版本的 Maven 都会发生这种情况。 2.0.6 或更早的版本没有这个问题,它会更快地超时。

最佳答案

在 2.1 之前的 Maven 版本中,无法将客户端配置为超时,但如果您设置更新策略,您可以将其配置为减少检查更新的频率。这部分解决了问题。

例如:

<repository>
<id>myrepo</id>
<url>http://maven.mycompany.com/m2</url>
<releases>
<enabled>true</enabled>
<updatePolicy>daily</updatePolicy>
</releases>
<snapshots>
<enabled>false</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>

有效值为:

  • 始终 - 始终检查 Maven 何时启动以获取较新版本的快照
  • 从不 - 从不检查较新的远程版本。可以执行一次关闭手动更新。
  • 每天(默认)- 检查当天的第一次运行(本地时间)
  • interval:XXX - 每 XXX 分钟检查一次

另一个考虑因素是您用于托管内部存储库的软件。使用存储库管理器,例如 Nexus您可以通过管理器管理所有外部远程存储库连接,并为这些远程连接配置超时。然后,您的客户端将只查询存储库管理器,它应该尽快响应在超时允许的情况下。


更新:

如果您知道依赖项不会由特定存储库提供服务,您可以将其分离到一个配置文件中,这样它就不会在该构建中引用。

<profiles>
<profile>
<id>remote</id>
<repositories>
<repository>
<id>central</id>
<url>http://repo1.maven.org</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>false</enabled></snapshots>
</repository>
...
</repositories>
</profile>
<profile>
<id>internal</id>
<repositories>
<repository>
<id>myrepo</id>
<url>http://maven.mycompany.com/m2</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>false</enabled></snapshots>
</repository>
...
</repositories>
</profile>
</profiles>

使用上述配置,运行 mvn package -Premote 将不会连接到内部存储库,因此超时不会是一个因素。

您可以通过在设置中添加一些额外的配置来避免在每个构建中指定配置文件:

<settings>
...
<activeProfiles>
<activeProfile>internal</activeProfile>
<activeProfile>remote</activeProfile>
</activeProfiles>
...
</settings>

对于 Maven 2.1,您可以通过在 Maven 设置中(默认为 ~/.m2/settings.xml)在服务器上添加配置来设置超时,例如:

<server>
<id>myrepo</id>
<configuration>
<timeout>5000</timeout> <!-- 5 seconds -->
</configuration>
</server>

关于java - 下载依赖项时如何让 maven 提前超时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1168468/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com