2011-08-13 172 views
1

我读过常春藤文档和一些其他教程,但我现在试图在项目中第一次实际使用它,并立即出现一些障碍。常春藤配置帮助

  • 对于练习,我想写所有我自己的配置(XML)文件。不知道将ivy.xml,ivyconf.xml或ivy-settings.xml放在哪里:是否将它们放在与我的build.xml相同的目录中?
  • 除了ivy.xml,ivyconf.xml和ivy-settings.xml,还有我应该知道的其他任何配置文件吗?我在哪里放置这些?
  • IvyDE仅仅是一个图形Eclipse插件,它以图形方式编辑ivyconf.xml或编辑其他文件?

感谢您的任何意见 - 在这个惊人的工具上找到更好的信息令人惊讶地困难!

回答

1

您只需要一个文件ivysettings.xml。您可以将它放在build.xml或任何所需的项目目录中。或者,您可以使用一个或多个属性文件用于不同的用途。

除了ivysettings.xml还记得关于常青藤缓存目录。通常,解决所有依赖项解决问题的最佳解决方案是通过删除此目录来清理常青藤缓存。

IvyDE允许您解决Eclipse内部的项目依赖关系。 IvyDE创建一个名为ivy.xml的新类路径容器。在这个容器里面你会找到解决的库。 我建议您在Eclipse中使用本地或Intranet常青藤资源库,因为如果解决需要一些时间,它会减慢项目的加载速度。

例如,我放置了我在项目中使用的ivysettings.xml。正如你可以看到的Eclipse那里有eclipse-ivy.properties文件。在这个文件中,我命令常春藤在Eclipse中使用本地存储库。在Ant脚本中,我默认使用远程存储库,但是有一个选项可以选择本地存储库。

<?xml version="1.0" encoding="UTF-8" ?> 
<ivysettings> 
<settings defaultResolver="${ivy.resolver}" /> 
<statuses default="development"> 
    <status name="release" integration="false"/> 
    <status name="integration" integration="true"/> 
    <status name="development" integration="true"/> 
</statuses> 
<resolvers> 
    <ssh name="remote" checkconsistency="true" checkmodified="true" descriptor="required"> 
     <ivy pattern="ssh://***/home/ivy/repository/[organisation]/[module]/[revision]/ivy.xml"/> 
     <artifact pattern="ssh://***/home/ivy/repository/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]"/> 
    </ssh> 
    <filesystem name="local"> 
     <ivy pattern="${user.home}/.local-ivy-repository/[organisation]/[module]/[revision]/ivy.xml"/> 
     <artifact pattern="${user.home}/.local-ivy-repository/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]"/> 
    </filesystem> 
</resolvers> 
</ivysettings> 

elipse-ivy.properties:

ivy.resolver=local 
0

在一般情况下,最好创建一个单一的标准化常春藤settings.xml文件,并在你的构建可以得到它轻松的位置对其进行托管。这个文件通常对于所有项目都是一样的,一旦设置正确,很少会改变。在我的开发小组中,我们将ivy-settings.xml文件托管在Web服务器上,以便可以通过URL轻松引用它。

我们使用Ant构建,因此我们还提出了一个标准化的ant构建文件,它可以托管在某处并导入到Ant构建脚本中,或者只需要复制到项目目录(如果需要任何类型的自定义)。

我发现最好将Ivy配置文件保持原样并通过覆盖构建脚本和/或ivy.xml文件中的默认值进行任何类型的自定义。几乎任何你需要改变的东西都可以被覆盖。我建议不更改Ivy配置文件,因为它使其他用户更容易构建项目。如果您对配置文件进行了一系列更改,那么任何希望构建项目的其他开发人员都必须在本地Ivy安装上复制这些更改才能运行本地构建。这是不好的魔咒。

IvyDE插件为您的ivy.xml和ivy-settings.xml文件提供了编辑器。根据文档,它还提供了自动下载项目依赖关系的方法,包括自定义控制台和反向依赖关系浏览器,以帮助解决和解决依赖关系冲突。不过,我只使用编辑器,所以我不能担保其他工具。

像Alexey一样,我建议使用Ivy的库管理器。 Artifactory很好地完成了这项工作;一旦运行,它很容易设置和坚固。

我同意文档有很多不足之处;我花了几个星期的实验才真正掌握了所有片段如何组合在一起。最后,这完全是值得的。一旦你解决了所有的问题,一个调整好的神器管理系统真是一件美丽的东西。