1

我们最近刚刚将我们的项目转换为使用 Maven 进行构建和依赖管理,在转换之后,我在尝试在我的项目中运行任何 JSFUnit 测试时遇到以下异常。

异常类=[java.lang.UnsupportedOperationException]
com.gargoylesoftware.htmlunit.ScriptException:尚不支持 CSSRule com.steadystate.css.dom.CSSCharsetRuleImpl。
    在 com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine$HtmlUnitContextAction.run(JavaScriptEngine.java:527)
    在 net.sourceforge.htmlunit.corejs.javascript.Context.call(Context.java:537)
    ...

JSFUnit 的所有依赖项和 JAR 都是使用 Maven 使用 JBoss 存储库 ( http://repository.jboss.com/maven2/ ) 提取的。

我们在项目中使用以下依赖项:

  • jboss-jsfunit-core 1.2.0.Final
  • jboss-jsfunit-richfaces 1.2.0.Final
  • richfaces-ui 3.3.2.GA
  • 开放面 2.0
  • JSF 1.2_12
  • Facelets 1.1.14

在 Maven 管理依赖项之前,我们能够很好地运行 JSFUnit 测试。我能够通过使用某人塞进我们的 WEB-INF/lib 目录(在 Maven 转换之前)的 ss_css2.jar 文件来半解决这个问题。我希望找出是否还有其他方法可以修复 Maven 中的依赖项,而不是自己管理一些依赖项。

4

1 回答 1

2

您很可能会获得 HtmlUnit 或另一个 JAR 的“不兼容”版本(传递拉)。尝试使用您之前使用的版本并在该dependencyManagement部分下声明它,例如

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>net.sourceforge.htmlunit</groupId>
      <artifactId>htmlunit</artifactId>
      <version>2.7</version><!-- put "your" version here -->
    </dependency>
  </dependencies>
</dependencyManagement>    

或者,如果您更改了任何版本,请尝试恢复到确切的先前状态(顺便问一下,您能否澄清先前版本与当前使用的版本之间的差异?)。

更新:问题似乎与 cssparser 工件的版本有关。我没有所有必需的元素来解决这个问题,但 OP 做到了:)

于 2010-04-20T19:08:24.037 回答