2013-02-28 175 views
0

常春藤可以解决依赖关系的依赖关系,文档说可以使用模块配置来告诉ivy配置依赖于给定的依赖关系配置。如何配置常春藤来解决htmlunit的依赖问题

我想可以使用HtmlUnit,在一个项目中,其sourceforge page依赖的信息,我发现依赖设置我翻译的行家规格常春藤:

<dependency org="net.sourceforge.htmlunit" name="htmlunit" rev="2.11"/> 

我写了一个测试,编吧,试着运行它时,我有一个ClassNotFoundException,我又回到了SourceForge上,并寻找有关的HtmlUnit的依赖关系的信息,在此page我发现我看了,所以我想我需要的一切使用模块配置的魔力,所以我说:

<dependency org="net.sourceforge.htmlunit" name="htmlunit" rev="2.11" conf="test->compile; test->test"/> 

,但我有这个错误告诉我的配置是不是net.sourceforge.htmlunit#发现的HtmlUnit; 2.11,“编译”

回答

2

的编译配置确实存在....

试图复制你的的问题,我发现了以下错误消息:

[ivy:resolve]  :::::::::::::::::::::::::::::::::::::::::::::: 
[ivy:resolve]  ::   UNRESOLVED DEPENDENCIES   :: 
[ivy:resolve]  :::::::::::::::::::::::::::::::::::::::::::::: 
[ivy:resolve]  :: net.sourceforge.htmlunit#htmlunit;2.11: 
    configuration not public in net.sourceforge.htmlunit#htmlunit;2.11: 'test'...... 

当常春藤转换一个Maven模块到配置它的方式这样做是不允许传递测试依赖的分辨率。

这个推理有一些逻辑,毕竟这个测试依赖关系是为了支持htmlunit模块的测试而设计的。你的模块应该明确声明自己的测试依赖关系......

我通常会建议将映射“远程”运行时Maven范围的“测试”配置,以获取更多的罐子:

<dependency org="net.sourceforge.htmlunit" 
      name="htmlunit" 
      rev="2.11" 
      conf="compile->default;test->runtime"/> 

问题是在htmlunit模块中没有“运行时”依赖关系,这意味着这不会有任何帮助。

总之,你有没有表示哪一个类失踪。如果是一些明显的JUnit一样,那么我建议这一点是应该在你的ivy文件中明确声明。

相关问题