camunda / camunda-bpm-platform

Flexible framework for workflow and decision automation with BPMN and DMN. Integration with Quarkus, Spring, Spring Boot, CDI.
https://camunda.com/
Apache License 2.0
4.11k stars 1.55k forks source link

Make codebase ready for latest Maven version #2346

Closed ThorbenLindhauer closed 1 year ago

ThorbenLindhauer commented 4 years ago

This issue was imported from JIRA:

Field Value
JIRA Link CAM-11822
Reporter @ThorbenLindhauer
Has restricted visibility comments true

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:

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:

yanavasileva commented 2 years 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):

tasso94 commented 2 years ago

I did a little more brainstorming and came up with some more ideas we could investigate:

yanavasileva commented 1 year ago

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.

yanavasileva commented 1 year ago

The many PRs are for data collection, I will not close them so far. For review, PRs to make codebase ready: