[Seasar-user:9145] Re: pom.xmlのdependencyにcommons-configuration-1.4.jarを追加するとNoSuchMethodError
k.moriwaki
[E-MAIL ADDRESS DELETED]
2007年 7月 13日 (金) 12:06:46 JST
森脇です。
> これには
> <dependency>
> <groupId>servletapi</groupId>
> <artifactId>servletapi</artifactId>
> <version>2.4</version>
> <optional>true</optional>
> </dependency>
optionalがtrueになっているのでこれではありません。
commons-configuration.jarが依存しているcommons-jxpath-1.2.jarの
commons-jxpath-1.2.pomに
<dependency>
<groupId>servletapi</groupId>
<artifactId>servletapi</artifactId>
<version>2.2</version>
</dependency>
と書かれているのでservletapi-2.2.jarが含まれることになります。
さらにservletapi-2.2.pomを見ると
<relocation>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.2</version>
</relocation>
と書かれているので
<exclusion>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
</exclusion>
とすることで除外する事ができます。
07/07/13 に Taro Unno<[E-MAIL ADDRESS DELETED]> さんは書きました:
> 海野です。
>
> 森脇さん、ずばり解決しました。
> 大変助かりました。感謝致します。
>
> pom.xmlの勉強不足ですね、お恥ずかしい限りです。
> 恥かきついでに、もう1つ、出来れば教えてください。
>
> 実は私もcommons-configurationのpomを見ていたのですが、ファイルは
> http://repo1.maven.org/maven2/commons-configuration/commons-configuration/1.4/commons-configuration-1.4.pom
> のことではないのでしょうか。
> (セントラルリポジトリのpomで、こちらのローカルリポジトリにも
> 同じものがダウンロードされています。)
>
> これには
> <dependency>
> <groupId>servletapi</groupId>
> <artifactId>servletapi</artifactId>
> <version>2.4</version>
> <optional>true</optional>
> </dependency>
> と書かれていて、バージョンは2.4と書かれているのに
> どうしてクラスパスには2.2が設定されるのかわかりませんでした。
>
> 森脇さんはどこのpom.xmlをご覧になったのですか?
>
> 宜しくお願い致します。
>
>
> 07/07/13 に k. moriwaki<[E-MAIL ADDRESS DELETED]> さんは書きました:
> > 森脇と申します。
> >
> > commons-configurationのpom.xmlを見てみたところ、
> > dependenciesに以下のJarが書かれていました。
> >
> > ・ant-optional-1.5.1.jar
> > ・avalon-framework-4.1.3.jar
> > ・commons-beanutils-1.7.0.jar
> > ・commons-beanutils-core-1.7.0.jar
> > ・commons-codec-1.3.jar
> > ・commons-collections-3.2.jar
> > ・commons-digester-1.8.jar
> > ・commons-jxpath-1.2.jar
> > ・commons-lang-2.3.jar
> > ・commons-logging-1.1.jar
> > ・commons-logging-api-1.0.4.jar
> > ・jdom-b9.jar
> > ・junit-3.8.jar
> > ・log4j-1.2.12.jar
> > ・logkit-1.0.1.jar
> > ・servlet-api-2.2.jar
> > ・xerces-1.2.3.jar
> > ・xml-apis-1.0.b2.jar
> >
> > この中にservlet-api-2.2.jarとxerces-1.2.3.jarが含まれているため、
> > classpathに追加されたのだと思います。
> > なので
> >
> > <dependency>
> > <groupId>commons-configuration</groupId>
> > <artifactId>commons-configuration</artifactId>
> > <version>1.4</version>
> > </dependency>
> >
> > を
> >
> > <dependency>
> > <groupId>commons-configuration</groupId>
> > <artifactId>commons-configuration</artifactId>
> > <version>1.4</version>
> > <exclusions>
> > <exclusion>
> > <groupId>javax.servlet</groupId>
> > <artifactId>servlet-api</artifactId>
> > </exclusion>
> > <exclusion>
> > <groupId>xerces</groupId>
> > <artifactId>xerces</artifactId>
> > </exclusion>
> > </exclusions>
> > </dependency>
> >
> > とすれば含まれなくなるはずです。
> > 後はプロジェクトに合わせてexclusionを追加すればよいかと思います。
> >
> > _______________________________________________
> > Seasar-user mailing list
> > [E-MAIL ADDRESS DELETED]
> > https://ml.seasar.org/mailman/listinfo/seasar-user
> >
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>
Seasar-user メーリングリストの案内