因此,由于无法找到一种方法来解决我们的依存关系问题,因此包括了来自外部资源的所有内容,因此我已将Eclipse / IvyDE用于ant / Ivy集成。
话虽如此,我通常会包含一个像这样的库:
<dependency org="org.jsoup" name="jsoup" rev="1.6.3"/>
但是,如果我想查看我们自己的Intranet中的内容,该怎么办?
例如,如果保存罐子的文件夹位于以下位置:
https://prdsvn01.company.intra.net/repo/libName/
我想将lib.jar包含到我的文件夹中。
在这种eclipse的实现中,我一直找不到ivysettings.xml,如果可以的话,我也不相信我能够正确地做到这一点。
有人可以帮我吗?
最佳答案
以下常春藤设置文件:
<ivysettings>
<settings defaultResolver="central"/>
<resolvers>
<ibiblio name="central" m2compatible="true"/>
<url name="my-repo">
<artifact pattern="http://myserver/myrepo/[organisation]/[artifact]/[revision]/[artifact].[ext]"/>
</url>
</resolvers>
<modules>
<module organisation="org.mycompany" resolver="my-repo"/>
</modules>
</ivysettings>
配置为默认情况下从Maven Central检索工件,并从HTTP服务器检索本地工件。
更新资料
常春藤.xml
常春藤文件中没有什么特别的。只需声明依赖关系以及与之关联的配置即可:
<configurations>
<conf name="compile" description="Required to compile application"/>
</configurations>
<dependencies>
<!-- compile dependencies -->
<dependency org="org.slf4j" name="slf4j-api" rev="1.6.4" conf="compile->default"/>
<dependency org="org.mycompany" name="my-module" rev="1.0" conf="compile->default"/>
</dependencies>
注意:
使用配置是常春藤的最佳实践。
build.xml
<target name="resolve" dependencies="Resolve build dependencies">
<ivy:resolve/>
<ivy:report todir='build/reports' graph='false' xml='false'/>
<ivy:cachepath pathid="compile.path" conf="compile"/>
..
</target>
笔记:
ivycachepath任务将ivy配置转换为已填充的ANT类路径。很有用。
常春藤报告任务告诉您在类路径上的罐子
常春藤解析构建输出
所有的魔力都在设置文件中。运行构建会产生以下结果:
[ivy:resolve] found org.slf4j#slf4j-api;1.6.4 in central
[ivy:resolve] found org.mycompany#my-module;1.0 in my-repo
..
[ivy:resolve] downloading http://repo1.maven.org/maven2/org/slf4j/slf4j-api/1.6.4/slf4j-api-1.6.4.jar ...
..
[ivy:resolve] downloading http://myserver/myrepo/org.mycompany/my-module/1.0/my-module.jar ...
笔记:
my-repo解析程序用于具有“ org.mycompany” groupId的模块。
其他所有内容均来自默认解析器Maven Central。