Quantcast
Viewing all articles
Browse latest Browse all 134

JavaMailのdependencyはどれが正しいのか?

問題です。MavenでJavaMailの依存性を定義する場合、以下3つのどれが正しいでしょうか?

<dependency><groupId>javax.mail</groupId><artifactId>mail</artifactId><version>1.4.7</version></dependency>

<dependency><groupId>javax.mail</groupId><artifactId>javax.mail-api</artifactId><version>1.4.7</version></dependency>

<dependency><groupId>com.sun.mail</groupId><artifactId>javax.mail</artifactId><version>1.4.7</version></dependency>

答えはどれも正解です。

もちろん違いはあって

1はもう使わない。
2はjavax.mail.jarが含まれません。そのため、2の定義だけで実行すると com.sun.mail.util.MailLoggerが見つからずjava.lang.ClassNotFoundExceptionが発生します。
3はjavax.mail.jarを含むので一番堅実な定義です。

なお、2018/3/6現在ではJavaMail 1.6.1が最新なので

<dependency><groupId>com.sun.mail</groupId><artifactId>javax.mail</artifactId><version>1.6.1</version></dependency>

が良さそうです。

1,2,3の違いについてはJavaMailのスペックリード(をされていた?の過去形になってしまうのかな?)のBill Shannonさん自らがStackOverflowで回答&解説されてます。
stackoverflow.com

が、1が2になった理由はちょっとよくわかりませんでした。もう少し調べないと…。


Viewing all articles
Browse latest Browse all 134

Trending Articles