Closed ThorbenLindhauer closed 1 year ago
After execution of the ci with Maven 3.8 the only problem detected is addition library dependency to javax.activation to the following artifacts:
The problem is occurs at least at two places with Maven 3.8 (including Maven >= 3.3):
after the packaging, a maven-dependency-plugin lists the dependencies including javax.activation, gets populated in dependencies-generated.txt, then repackages the artifacts with the listed dependencies
The issue is reported to Maven, but for several years no solution is provided.
I did a little more brainstorming and came up with some more ideas we could investigate:
javax.activation
influence whether the dependency is further propagated in the Maven Reactor? Maybe we can create a situation that allows shading in typed-values
, but due to the dependency scope of javax.activation
, the shading plugins in downstream projects of the reactor don't take it further into account typed-values
but excludes javax.activiation
? The downstream projects would depend on this "workaround" Maven projecttyped-values
and do it only where it is necessary (like the engine shading plugin); didn't think it through: do people use typed-values
artifact directly in their projects?typed-values
back to camunda-commons
Decided: define javax.activation
as optional dependency in typed-values
. The dependency is not propagated to the other artifacts that have dependency to typed-values
. So the change is made only for the typed-values
and other adjustments are required in the code.
The many PRs are for data collection, I will not close them so far. For review, PRs to make codebase ready:
This issue was imported from JIRA:
In the CI we currently use Maven 3.2 to build our artifacts. From a maintenance perspective, it is important to update the Maven version at some point so that we can benefit from new features and fixes in Maven, e.g. using Maven plugins that require a certain minimal version.
We can move to a newer version, but must do this carefully. This ticket's goal is to prepare our codebase for a newer Maven version. Many devs already use newer versions locally and it's generally fine, but there may be some very non-obvious details that can change with newer Maven versions. We can collect such things in this ticket.
AC:
Problem 1:
mvn -pl engine-dmn/feel-scala -am dependency:tree
in the platform repo. This creates a multi-module build that includes commons-typed values and feel-scala-api. typed-values shades javax.activation. With Maven 3.2, we can see that javax.activation is not a transitive dependency in any module that consumes typed-values. With higher Maven versions, it is.See also https://confluence.camunda.com/display/AP/Maven+3.2
Breakdown
We know the changes that has to be applied to
Jenkins instances use the latest Maven version
Links: