以下是我的情况:
我可以在我的个人计算机上运行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>
答案 0 :(得分:1)
最简单的解决方案是在mac上配置存储库管理器,并在存储库管理器中配置不同的存储库。或者您可以使用git将${HOME}/.m2/settings.xml
切换到不同的状态。
<强>更新强>
在$ {HOME} /。m2 /通过git init
创建一个git存储库
添加包含单行的相应.gitignore
文件
repository
。检查您的settings.xml
文件。创建一个分支
例如git co -b company
进行适当的更改
你的公司并检查该州。之后你就可以了
通过在git中切换到适当的分支来切换。
像Nexus一样设置存储库管理器(在您的机器上)
并配置您需要的必要存储库。如果你工作
在公司站点上,您可以激活/停用相应的存储库
通过Nexus的UI,这意味着你没有任何改变
settings.xml
。
我的偏好是本地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一样)?