2010-11-23 19 views
0

これは私のカスタムのMavenのGroovyの実行です:Apache Common LoggingとGroovyの競合を解決するにはどうすればいいですか?

[...] 
<plugin> 
    <groupId>org.codehaus.groovy.maven</groupId> 
    <artifactId>gmaven-plugin</artifactId> 
    <version>1.0-rc-5-SNAPSHOT</version> 
    <executions> 
    <execution> 
     <phase>prepare-package</phase> 
     <goals> 
     <goal>execute</goal> 
     </goals> 
     <configuration> 
     <classpath> 
      <element> 
      <groupId>commons-httpclient</groupId> 
      <artifactId>commons-httpclient</artifactId> 
      <version>3.1</version> 
      </element 
     </classpath> 
     <source> 
      import org.apache.commons.httpclient.HttpClient; 
      // ... 
     </source> 
     </configuration> 
    </execution> 
    </executions> 
</plugin> 
[...] 

これは、Mavenのはこう言われる、

[...] 
[ERROR] Failed to execute goal org.codehaus.groovy.maven:gmaven-plugin:1.0-rc-5-SNAPSHOT:execute (...) on project XXX: 
java.lang.ExceptionInInitializerError: org.apache.commons.logging.LogConfigurationException: 
org.apache.commons.logging.LogConfigurationException: 
Invalid class loader hierarchy. 
You have more than one version of 'org.apache.commons.logging.Log' visible, 
which is not allowed. 
(Caused by org.apache.commons.logging.LogConfigurationException: 
Invalid class loader hierarchy. 
[...] 

私はそれがなぜ起こるか私は理解していることと思いますが、どのように私はそれを解決できますか?

+0

私は興味があります。なぜ、1.3(http://btilford.blogspot.com/2010/08/gmaven-13-is-out.html)の代わりに古いgmavenプラグインを使用していますか? – Skarab

+0

1.3は1.2ではなく最新のものです。 – Skarab

+0

ありがとう、今後1.3を使用します:) – yegor256

答えて

1

バージョン1.3にアップグレードすると問題が解決しました。

1

pom.xmlファイル全体を見ることなくこれを修正する方法は正確には言い難いですが、タグを調べることをお勧めします。 MVNの依存性とその依存関係をインポートしている

<plugin> 
    ... 
    ... 
    <dependencies> 
     <dependency> 
      <artifactId>...</artifactId> 
      <groupId>...</groupId> 
      <version>...</version> 
      <exclusions> 
       <exclusion> 
        <artifactId>commons-logging</artifactId> 
        <groupId>commons-logging</groupId>       
       <exclusion> 
      </exclusions> 
     </dependency> 
    </dependencies> 
</plugin> 
+0

私のプロジェクトには 'commons-logging'が含まれています。私は完全に除外することはできません:)この特定のGroovyスニペットのために除外する必要があります。可能? – yegor256

+0

Vincenzo、あなたの 'commons-httpd'にはコモンズロギングの依存関係もあります。ですから、あなたはcommons-httpclient(使用したものと使用したいもの)を使用しようとするときに、2つの 'commons-logging'依存関係が衝突します。私があなたに提案しているのは、commons-httpclientが使いたいものを除外することです。 – dsummersl

+0

正確には、除外する方法はありますか? – yegor256

0

チェック:あなたは、次のようなもので、余分な依存関係を除外することができ、ツリーを、紛争を削除します。

+0

私はこの依存関係を誰がインポートしているのか知っています。それは私のプロジェクトです。このJARが私のプロジェクトに必要です。私はそれを除外できません。私はただGmavenが再びそれをインポートしないようにしたい。これはできますか? – yegor256

関連する問題