Kumar
Kumar

Reputation: 1124

JavaMail API from Maven

I am trying to upgrade to latest Java Mail utility.

From

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

to (my Intention)

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

But I don't find 1.5.1 for mail artifact,

but I can see

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

My Question is why group id changed and if I change the group id for 1.5.1 do I need to change all my mail implementation that is already present (package name change and any other stuff) and what is the difference between com.sun.mail vs javax.mail?

Upvotes: 47

Views: 40722

Answers (1)

Bill Shannon
Bill Shannon

Reputation: 29981

The Maven coordinates changed some time ago to be compatible with the scheme described here. The new coordinates are here.

In short:

  • The groupId javax.mail is no longer used for the implementation.
  • There is a new artifact at javax.mail:javax.mail-api. It provides the javax.mail-api.jar file. This contains the JavaMail API definitions only, suitable for compiling against.
  • com.sun.mail:javax.mail contains the javax.mail.jar file, the JavaMail reference implementation jar file, including the SMTP, IMAP, and POP3 protocol providers.

So, you should either use com.sun.mail:javax.mail for compilation and packaging/deploy, or use javax.mail:javax.mail-api for compilation and then deploy the com.sun.mail:javax.mail jar where appropriate (e.g., your Tomcat lib).

Upvotes: 100

Related Questions