Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 4.0

The Java EE jars in the javax.* groups in the Maven Central repository are the ones provided by Sun. What if you want to use another vendor's specification and implementation jars?

Unfortunately, Maven doesn't understand "is an implementation of". For example, if you declare a dependency on the MyFaces JSF implementation, and you have a transitive dependency on Sun's JSF reference implementation, you will end up with both of them on your classpath because Maven can't tell they are the same thing.

The same applies if you host an internal repository and want to use IBM's or BEA's Java EE implementations, which aren't available in the public repository.

The Servlet API jar is generally not a problem because it is almost always declared with 'provided' scope, which takes it out of transitive dependency resolution. Otherwise you might end up with one of Geronimo's Servlet 2.5 API jars, as well as Sun's servlet-api-2.5.jar on your classpath.