web-dev-qa-db-ja.com

MavenのJavaMail API

最新のJava Mailユーティリティにアップグレードしようとしています。

から

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

に(私の意図)

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

しかし、メールアーティファクトには1.5.1が見つかりません。

しかし、私は見ることができます

<dependency>
    <groupId>com.Sun.mail</groupId>
    <artifactId>javax.mail</artifactId>
    <version>1.5.1</version>
</dependency>

私の質問は、グループIDが変更された理由であり、1.5.1のグループIDを変更する場合、すでに存在するすべてのメール実装を変更する必要がありますか(パッケージ名の変更およびその他のもの)、com.Sun.mail vs javax.mail

40
Kumar

Maven座標は、 here で説明されているスキームと互換性があるように少し前に変更されました。新しい座標は here です。

要するに:

  • GroupId javax.mailは実装に使用されなくなりました。
  • javax.mail:javax.mail-apiに新しいアーティファクトがあります。 javax.mail-api.jarファイルを提供します。これには、コンパイルに適したJavaMail API定義のみが含まれます。
  • com.Sun.mail:javax.mailにはjavax.mail.jarファイル、SMTP、IMAP、およびPOP3プロトコルプロバイダーを含むJavaMail参照実装jarファイルが含まれます。

したがって、コンパイルとパッケージ化/デプロイにcom.Sun.mail:javax.mailを使用するか、コンパイルにjavax.mail:javax.mail-apiを使用してからcom.Sun.mail:javax.mail jarを適切な場所(たとえばTomcat lib)にデプロイする必要があります。

75
Bill Shannon