就是这样。我想知道如何构建pom.xml和setting.xml,以便我的构建将检查两个repo。服务器仓库和本地仓库?我怎样才能做到这一点。请清楚描述。不是哦,你必须将LocalRepo添加到setting.xml。做过某事。它没有告诉使用multi。把它放在pom中,它只是忽略了本地仓库,如果它不在服务器上则转到服务器上。我知道这是初学者的问题,所以请回答。没有一些小的信息片段,比如设置在pom中?为什么不在pom?以及如何设置?仅仅添加localRepo还不够?是否需要了解情况?等
在我的settings.xml中:
<mirrorOf>*</mirrorOf>
<url>http://myserver:8080/nexus/content/groups/public</url>
</mirror>
</mirrors>
只要这个镜像在那里,它似乎只检查这个repo url,如果它找不到它寻找的东西,则提供错误等待下一次更新。它从不检查当地的回购。我怎样才能保留这个镜子,还要检查额外的回购?
答案 0 :(得分:1)
我不喜欢对Maven的咆哮,所以我会尽可能地描述。
有两种方法可以向Maven添加新的存储库,也就是说告诉Maven它应该在哪里查找依赖项。
在POM中,通过在<build> <repositories> <repository>
元素中声明它来添加存储库。
<project>
...
<repositories>
<repository>
<id>my-repo1</id>
<name>your custom repo</name>
<url>http://jarsm2.dyndns.dk</url>
</repository>
<repository>
<id>my-repo2</id>
<name>your custom repo</name>
<url>http://jarsm2.dyndns.dk</url>
</repository>
</repositories>
...
</project>
通过修改~/.m2/settings.xml
文件(用于用户设置)或$M2_HOME/conf/settings.xml
(用于全局设置)来完成此操作。在这种情况下,存储库将添加到默认情况下处于活动状态的配置文件中:
<settings>
...
<profiles>
...
<profile>
<id>myprofile</id>
<repositories>
<repository>
<id>my-repo2</id>
<name>your custom repo</name>
<url>http://jarsm2.dyndns.dk</url>
</repository>
</repositories>
</profile>
...
</profiles>
<activeProfiles>
<activeProfile>myprofile</activeProfile>
</activeProfiles>
...
</settings>
希望这很清楚。
file://path/to/repo
http[s]://path/to/repo
现在,it is considered a best practice将此信息放在设置而不是POM中,因为此信息对于您拥有的每个项目通常都是相同的。这是公司信息,我们需要在全球范围内对待它,而不是每个项目。如果您需要每个项目,那么您可以将其添加到您的POM。结果将是相同的。
通过指定发布或快照模式,更新策略等,存储库可以是further configured。请参阅有关此文档的文档。
在编辑中,您正在使用镜像。要将镜像配置为仅用于特定存储库,可以在设置中进行以下配置:
<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">
...
<mirrors>
<mirror>
<id>my-wonderful-mirror</id>
<url>http://myserver:8080/nexus/content/groups/public</url>
<mirrorOf>id-of-your-repository</mirrorOf> <!-- this is the ID of the repository, i.e. what is inside settings > profiles > profile > repositories > repository > id -->
</mirror>
</mirrors>
...
</settings>
这样,您可以为远程存储库配置镜像,而不是为本地存储库配置镜像。