Platinum Partner
java,sql,oracle,maven,licensing

Oracle and Maven

Oracle has a problem with Maven and the negative effects of that is spreading to us Java developers.

I do not think it is an intentional Oracle strategy to avoid Maven, I think it is more of a Sun cultural legacy combined with loss of momentum in the transition to Oracle, but I really cannot tell.

The majority of Java projects active today I hear about are using Maven. Almost all new projects are based on Maven. Yet there are no Oracle examples, tutorials, legal constructions or anything else I can find, supporting Maven. Wouldn't it be nice if there were?

There are Oracle initiatives to support Maven but they seems fairly limited. Oracle continue to release major software with technical and legal constructions that make it so hard to use with Maven that one might think it is intentional attack on Maven. One example is JavaFX 2 with a distribution license making it incompatible with Maven.

Another annoying example is the javaee*-api artifacts in repo1.maven.org without method bodies. You get errors like

java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file javax/ws/rs/core/MediaType

(workarounds for that here).

It is claimed that the implementations are not needed because the container will provide these. I write unit tests, and I observe that you cannot execute any unit tests in a Maven module declaring a dependency to such an artifact.

Moreover, the Oracle artifacts are lacking javadoc and source, which seems to be a systematic problem. Publishing artifacts like this may waste my time more than if Oracle did not publish them at all (from that perspective maybe it is a feature that the Oracle JPA 2 artifact is missing).

I think it is fair to require of Oracle to either express a strategy for avoiding Maven and present an alternative technology, or to stop messing with us Java developers requiering separate downloads and malformed artifacts. The best alternative would be if Oracle started using and supporting Maven.

{{ tag }}, {{tag}},

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}
{{ parent.authors[0].realName || parent.author}}

{{ parent.authors[0].tagline || parent.tagline }}

{{ parent.views }} ViewsClicks
Tweet

{{parent.nComments}}