获得"缺少文物"虽然它们存在于.m2中

时间:2015-02-16 07:01:15

标签: maven

在我的.ml文件夹的settings.xml中,以下配置应用于从本地nexus存储库获取jar文件:

<mirrors>
    <mirror>
        <id>nexus</id>
        <mirrorOf>central</mirrorOf>
        <url>http://192.168.0.172:9090/nexus/content/groups/public/</url>
    </mirror>
</mirrors>
<profiles>
    <profile>
        <id>nexus</id>
        <repositories>
            <repository>
                <id>central</id>
                <url>http://central</url>
                <releases>
                    <enabled>true</enabled>
                    <updatePolicy>always</updatePolicy>
                </releases>
                <snapshots>
                    <enabled>true</enabled>
                    <updatePolicy>always</updatePolicy>
                </snapshots>
            </repository>
        </repositories>
        <pluginRepositories>
            <pluginRepository>
                <id>central</id>
                <url>http://central</url>
                <releases>
                    <enabled>true</enabled>
                    <updatePolicy>always</updatePolicy>
                </releases>
                <snapshots>
                    <enabled>true</enabled>
                    <updatePolicy>always</updatePolicy>
                </snapshots>
            </pluginRepository>
        </pluginRepositories>
    </profile>
</profiles>
<activeProfiles>
    <activeProfile>nexus</activeProfile>
</activeProfiles>

在我的pom.xml中,声明了一个外部存储库,以获取未在中央存储库中显示的jar文件:

<repositories>
    <repository>
        <id>spring-snasphot</id>
        <url>https://repo.spring.io/snapshot</url>
    </repository>
</repositories>

尽管这些所谓的“缺失的工件”存在于.m2的相应文件夹中,但我总是得到

  

缺少神器......

我的配置有什么问题? 提前致谢。 enter image description here

2 个答案:

答案 0 :(得分:2)

最后我才明白了。从相应的文件夹中删除了不包含jar文件的文件,然后更新了maven项目解决了这个问题。

答案 1 :(得分:0)

配置看起来不错。但必须要发生一些事情......

如果从本地存储库中删除这些快照工件并重试(例如:mvn dependency:go-offline),您是否看到尝试从https://repo.spring.io/snapshot下载工件?

附加存储库似乎包含快照,但未为该存储库启用。但我不确定这是默认值。由于更新策略,可能找不到工件。它们是本地可用的,但是太旧了,所以maven尝试更新它们但是失败了(你试过mvn -X吗?这可能表明在解决这些工件时失败了)。

可以选择将spring snapshots repo添加到你的nexus(启用了快照repo),并将设置xml中的mirrorOf设置为<mirrorOf>*</mirrorOf>。 中央的镜子可能是这样的:只是一个实验:)

验证maven实际看到的设置是您认为的设置总是一件好事:

mvn help:effective-settings

mvn help:effective-pom