我的Maven配置有一个小问题 . 这里的所有其他问题和答案都没有解决我的问题,所以我开始一个新的问题 .
我的问题是,我的Maven没有使用本地存储库 . 它总是从远程存储库中获取工件 .
下载工件或构建项目时,它安装在本地存储库中,因此路径是正确的 .
问题是:当我构建一个SNAPSHOT项目时,它只安装在本地存储库中(应该是这样,不希望每次都在我的nexus上发布它) . 当我在pom.xml中构建另一个具有前一个项目作为依赖项的项目时,maven想要从nexus服务器下载它没有找到它的工件,而不是从本地存储库中获取它 .
这是我的maven配置:
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<localRepository>C:\Users\Marc\.m2\repository</localRepository>
<interactiveMode>false</interactiveMode>
<usePluginRegistry>false</usePluginRegistry>
<pluginGroups>
</pluginGroups>
<servers>
<server>
<id>releases</id>
<username>MY_USERNAME</username>
<password>MY_PASSWORD</password>
<filePermissions>664</filePermissions>
<directoryPermissions>775</directoryPermissions>
</server>
<server>
<id>snapshots</id>
<username>MY_USERNAME</username>
<password>MY_PASSWORD</password>
<filePermissions>664</filePermissions>
<directoryPermissions>775</directoryPermissions>
</server>
<server>
<id>nexus</id>
<username>MY_USERNAME</username>
<password>MY_PASSWORD</password>
<filePermissions>664</filePermissions>
<directoryPermissions>775</directoryPermissions>
</server>
</servers>
<profiles>
<profile>
<id>nexussrv</id>
<repositories>
<repository>
<id>snapshots</id>
<url>http://nexus/content/repositories/snapshots</url>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
<releases>
<enabled>false</enabled>
</releases>
</repository>
<repository>
<id>releases</id>
<url>http://nexus/content/repositories/releases</url>
<releases>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>nexus</id>
<url>http://nexus/content/groups/public</url>
</repository>
</repositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>nexussrv</activeProfile>
</activeProfiles>
</settings>
从nexus和发布工件(SNAPSHOT和RELEASE)下载到nexus使用此配置,但它不使用本地存储库中的工件 .
谢谢你的帮助!
1 回答
您已配置SNAPSHOT应始终(
<updatePolicy>always</updatePolicy>
)从snapshot-nexus下载 . 因此,即使您的本地缓存(~/.m2/repository
)具有较新版本的快照,maven也会尝试从配置的服务器(http://nexus/content/repositories/snapshots
)下载它 .考虑更改快照条目的updatePolicy . 例如 . 如果您有一个CI服务器,它每天(早上)将快照连接到快照连接,请将updatePolicy更改为
daily
.