java - 如何在 subversion 存储库中包含 Ivy 依赖项

标签 java eclipse apache ivy ivyde

因此,由于我一直无法找到一种方法来通过包含外部源中的所有内容来解决我们的依赖性问题,所以我转向 Eclipse/IvyDE 进行 ant/Ivy 集成。

话虽如此,我通常会包含这样的库:

<dependency org="org.jsoup" name="jsoup" rev="1.6.3"/>

但是,如果我想查看我们自己的 Intranet 中的某些内容该怎么办?

例如,如果保存 jar 的文件夹位于这样的位置:

https://prdsvn01.company.intra.net/repo/libName/

我想将 lib.jar 包含到我的文件夹中。

我在 eclipse 的实现中相对无法找到 ivysettings.xml,而且我也不相信如果可以的话我能够找到它。

有人可以帮我解决这个问题吗?

最佳答案

以下ivy设置文件:

<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 服务器检索本地工件。

更新

ivy.xml

ivy 文件中没有什么特别的。只需声明依赖项以及将它们与哪些配置关联即可:

<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>

注意:

  • 使用配置是 ivy 的最佳实践。

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 报告任务会告诉您类路径上的 jar

ivy 解析构建输出

所有的魔力都在设置文件中。运行构建会产生以下结果:

[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。

关于java - 如何在 subversion 存储库中包含 Ivy 依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12515936/

相关文章:

java - 如何使用 Google Cloud Storage 验证我的 Java 应用程序?

android - 在布局中的子元素中使用非 android 命名空间前缀

java - 为什么我们需要在 hbm.xml 中而不是在 java 文件字符串中编写 native sql 查询?

java - 使用正则表达式保存子字符串

eclipse - eclipse中的"open call hierarchy"无法正常工作

php - Apache:在此服务器上找不到请求的 URL。 Apache

php - ajax-heavy Apache+Mysql+PHP站点的服务器优化

apache - 基于 NameVirtualHost 的虚拟主机上的 SSL 证书配置

java - 如何使java中的线程能够接收来自2个线程的通知?

android - 在 layout.xml 中使用 '@string/value' 时找不到资源