【发布时间】:2012-01-26 22:13:39
【问题描述】:
如何将本地路径(不是 URL)添加到ivysettings.xml?我需要添加我的 Maven 本地存储库(/Users/me/.m2/repository 到它。
谢谢
【问题讨论】:
如何将本地路径(不是 URL)添加到ivysettings.xml?我需要添加我的 Maven 本地存储库(/Users/me/.m2/repository 到它。
谢谢
【问题讨论】:
试试下面的 ivysettings.xml 文件:
<ivysettings>
<settings defaultResolver="default"/>
<property name="m2-pattern" value="${user.home}/.m2/repository/[organisation]/[module]/[revision]/[module]-[revision](-[classifier]).[ext]" override="false" />
<resolvers>
<chain name="default">
<filesystem name="local-maven2" m2compatible="true" >
<artifact pattern="${m2-pattern}"/>
<ivy pattern="${m2-pattern}"/>
</filesystem>
<ibiblio name="central" m2compatible="true"/>
</chain>
</resolvers>
</ivysettings>
它包括 Maven 中心,以防本地 Maven 存储库中缺少依赖项。
注意:
重用本地 Maven 存储库的好处是有限的。 Ivy 缓存从存储库中检索到的 jar。
【讨论】:
.pom 扩展,就像建议的 here 一样。这样 Ivy 的 POM 转换逻辑就会启动,如果您需要参考像 master 这样的合成配置,这是相关的。
Ivy 依赖项通过“解析器”解析。
此页面非常适合了解它们的工作原理。
http://ant.apache.org/ivy/history/latest-milestone/settings/resolvers.html
具体来说:如何“解析”本地 maven 存储库?
Ivy 有一个“FileSystemResolver”,它可以简单地从本地根路径解析,而不是获取网址。请注意,当事情变得复杂时,会有一些陷阱,例如:http://ant.apache.org/ivy/history/latest-milestone/settings/resolvers.html。解析器类似于 maven Repository 标签,因为它们定义了一个资源。
简短的建议
请记住,如果您使用的是 IDE,则一旦您自定义了 ivysettings.xml,您必须告诉它专门使用您的 ivysettings.xml 文件,而不是一些内部默认值。
【讨论】:
我发现在更新的 sbt 版本中你可以这样做
sbt publish-m2
【讨论】:
<localRepository>。
在 0.13.7 之前,SBT 忽略了 Maven 的 settings.xml 以使用 <localRepository> 设置。见https://github.com/sbt/sbt/issues/1589。在某些情况下,这将避免在使用 publish-m2 时更改 ivysettings.xml 的需要。
【讨论】: