由于自定义settings.xml,无法下载maven存储库?

时间:2014-10-16 03:35:00

标签: maven maven-3

以下是我的情况:

我可以在我的个人计算机上运行mvn install并且构建成功。

但是当我在工作站上运行时,我收到以下错误。这很可能是因为我在settings.xml中有一个${user.home}/.m2/settings.xml,它指的是我公司的回购,并且不允许从远程maven回购中获取。我怎样才能克服这种行为?

我的工作站和个人计算机都运行mac OS X.

这是settings.xml(我用虚拟名称替换了真实姓名)

<profiles>
        <profile>
            <id>dummy</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
                <dummy-groupId>com.mycompany.mydummy</dummy-groupId>
                <dummy-name>my-java-ee-app</dummy-name>
                <dummy-Mode>FALSE</dummy-Mode>
            </properties>
            <repositories>
                <repository>
                    <id>mycompany Release Repository</id>
                    <name>central maven release repository</name>
                    <url>
                        http://maven1.mycompany.com:8080/myartifactories/repo
                    </url>
                    <snapshots>
                        <enabled>false</enabled>
                    </snapshots>
                </repository>
                <repository>
                    <id>mycompany Snapshot Repository</id>
                    <name>central maven snapshot repository</name>
                    <url>
                        http://maven1.mycompany.com:8080/myartifactories/repo
                    </url>
                    <releases>
                        <enabled>false</enabled>
                    </releases>
                </repository>
            </repositories>
            <pluginRepositories>
                <pluginRepository>
                    <id>mycompany Release Plugin Repository</id>
                    <name>central maven release repository</name>
                    <url>
                        http://maven1.mycompany.com:8080/myartifactories/repo
                    </url>
                    <releases>
                        <enabled>true</enabled>
                        <updatePolicy>never</updatePolicy>
                    </releases>
                </pluginRepository>
                <pluginRepository>
                    <id>mycompany Snapshot Plugin Repository</id>
                    <name>maven snapshot repository</name>
                    <url>
                        http://maven1.mycompany.com:8080/myartifactories/repo
                    </url>
                    <snapshots>
                        <enabled>true</enabled>
                        <updatePolicy>never</updatePolicy>
                    </snapshots>
                </pluginRepository>
            </pluginRepositories>
        </profile>

错误

Could not resolve dependencies for project org.glassfish.javaeetutorial:roster-ejb:ejb:7.0.5: Failure to find org.glassfish.javaeetutorial:roster-common:jar:7.0.5 in http://maven1.mycompany.com:8080/myartifactories/repo was cached in the local repository, resolution will not be reattempted until the update interval of mycompany Release Repository has elapsed or updates are forced -> [Help 1]

修改

我在我的有效pom中看到了中央回购: 这是它的精简版

<repository>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
      <id>central</id>
      <name>Central Repository</name>
      <url>http://repo.maven.apache.org/maven2</url>
    </repository>

3 个答案:

答案 0 :(得分:1)

最简单的解决方案是在mac上配置存储库管理器,并在存储库管理器中配置不同的存储库。或者您可以使用git将${HOME}/.m2/settings.xml切换到不同的状态。

<强>更新

  1. 在$ {HOME} /。m2 /通过git init创建一个git存储库 添加包含单行的相应.gitignore文件 repository。检查您的settings.xml文件。创建一个分支 例如git co -b company进行适当的更改 你的公司并检查该州。之后你就可以了 通过在git中切换到适当的分支来切换。

  2. 像Nexus一样设置存储库管理器(在您的机器上) 并配置您需要的必要存储库。如果你工作 在公司站点上,您可以激活/停用相应的存储库 通过Nexus的UI,这意味着你没有任何改变 settings.xml

  3. 我的偏好是本地git存储库,它也让我的生活更轻松。

答案 1 :(得分:0)

您的仓库似乎在本地缓存,需要强制更新。 请尝试以下强制更新:

mvn clean install -U

答案 2 :(得分:0)

我在你的错误中看到你粘贴了:

  

&#34; ...缓存在本地存储库中,解决方案不会   重新尝试直到mycompany的更新间隔&#34;。

因此您要删除此缓存,即从本地仓库中删除它。转到您的本地仓库(通常是.m2 / ...)并删除&#34;占位符&#34;:转到目录org / glassfish / javaeetutorial / 7.0.5然后您应该看到roster-common.XXX缓存 - 删除它。

如果发生这种情况,请在删除“缓存”后再进行此操作。从回购中,这意味着maven无法在任何回购中找到它。因此,您必须重新检查您的存储库定义。例如,为什么你没有&#34;中心&#34;您在settings.xml中定义的repo(与所有其他repos一样)