...
- provided dependencies should be used only for APIs which are supplied by the run-time container.
- compile dependencies should be used for all other modules whose APIs are referenced by the source code.
- If a compile dependency is used by optional code in a project like java-support, the dependency should be compile but marked as optional. Client projects which require the optional functionality must manually include the missing transitive dependency with runtime scope if they do not already require it at compile scope.
- If a module is required to be present at run time but is not referenced by the source code, it is a runtime scope dependency.
- If a module is not required by the main source code but is required for testing, it is a test scope dependency.
Dependency updates
tbd. The Dependencies can be updated when new versions become available during development. It is also sensible to perform a check for dependency updates of which we are not otherwise aware prior to a release.
To review the available dependency updates in a particular context (either the parent POM or a subordinate project which defines its own dependencies not managed by the parent project) the command of interest is:
Code Block |
---|
mvn versions:display-dependency-updates |
...
Obviously critical subsystems (XML handling, beans, encoders) need further discussion.
As of 2020-01-30, for the Java 11 platform, the following exceptions can be noted:
Dependency | Current Version | Ignore | Reason |
---|---|---|---|
ch.qos.logback:* | 1.2.3 | 1.3.0-alpha5 | latest stable |
com.sun.activation:jakarta.activation | 1.2.1 | 2.0.0-rc1 | latest stable |
commons-collections:commons-collections | 3.2.2 | 20040616 | 20040616 is older |
jakarta.activation:jakarta.activation-api | 1.2.1 | 2.0.0-rc1 | latest stable |
jakarta.json:jakarta.json-api | 1.1.6 | 2.0.0-RC1 | latest stable |
javax.servlet:javax.servlet-api | 3.1.0 | 4.0.1 | stated requirement; part of EE7 |
org.glassfish:jakarta.json | 1.1.6 | 2.0.0-RC1 | latest stable |
org.glassfish.jaxb:jaxb-runtime | 2.3.2 | 2.4.0-b180830.0438 | latest stable |
org.hibernate:hibernate-core | 5.4.10.Final | 6.0.0.Alpha4 | latest stable |
org.ldaptive:ldaptive | 1.3.0 | 2.0.0-RC1 | latest stable |
org.slf4j:* | 1.7.30 | 2.0.0-alpha1 | latest stable |
Plugin Maintenance
The simplest way to find what is out of date is to run
...