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 は、JBoss リポジトリ ( http://repository.jboss.com/maven2/ ) を使用して Maven でプルされました。

プロジェクトでは次の依存関係を使用しています。

  • jboss-jsfunit-core 1.2.0.Final
  • jboss-jsfunit-richfaces 1.2.0.Final
  • リッチフェイス UI 3.3.2.GA
  • オープンフェイス 2.0
  • JSF 1.2_12
  • フェイスレット 1.1.14

依存関係が Maven によって管理される前は、JSFUnit テストを問題なく実行できました。誰かが (Maven 変換前から) WEB-INF/lib ディレクトリに押し込んだ 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 に答える