-
Notifications
You must be signed in to change notification settings - Fork 1.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Adds explicit module descriptors to a subset of modules #1943
Conversation
cc @velo |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there any way we could test the chance?
3b99fb4
to
b463832
Compare
b463832
to
fe8483f
Compare
We'd have to add at least one more Maven module that runs tests in the module path. |
Is that something you can do? My concern would be a future change breaking it But if you can't do I can merge as is |
I think I can make it happen but it'll take me a bit longer to figure it out.
Given that the current module configuration exports everything by default (just like automatic modules do at the moment) there should not be much of a problem. With time this configuration may be refined to export only those packages that really must be visible to the exterior. |
Will need to revert this change
|
Is circleci running the build with the wrapper? I think this might be an issue with incompatible (read: too old) Maven version. |
I think I've got it. It's not the Maven version but the chosen JDK. The clue is in the exception
The build requires [at least] Java 9 to run. Better set it to Java 11. The update would have to happen here Lines 20 to 27 in bac0dd4
|
That is a problem, feign is java 8 compatible |
BTW, we had this discussion a while back, both me and @kdavisk6 are happy to move build process and testing to java 11, 17, 20, whatever, as long we can keep sources/jars java 8 compatible.... if you keen to give that a shot |
Yes, but you can target Java 8 bytecode even if the build uses Java 11. This is also why ModiTect is used in the PR, so that the codebase remains Java 8 compatible. Set |
Added back module-info support plus additional configuration to run Java8/Java11 on CI. #1948 |
should is the tricky part here. and still, maven would build with jdk X classpath, so it would allow me to invoke method/classes that don't exist for java 8 |
Should? Yes. And verifiable. This is what I get when running the build with Java 11
Besides, isn't animal-sniffer configured so that methods from Java 9+ are inaccessible? Also, running the build with Java 11 does not preclude you from configuring the IDE to use a lower Java setting. For example Intellij IDEA let's you configure the level in the project settings. I"m sure the other IDEs do so as well. that takes care of the problem when a developer might try to use java 9+ syntax/features. Animal sniffer OTOH can verify that at the build level regardless of the JDK used to run the build. |
* Adds explicit module descriptors to a subset of modules (#1943) Fixes #1357 * Configure CI to run with Java 11 * Configure moditect for all modules, enable only on those that required it * Do not skip moditect when running tests * Only skip modules that don't work with moditect plugin --------- Co-authored-by: Marvin Froeder <[email protected]> Co-authored-by: Marvin Froeder <[email protected]>
* Adds explicit module descriptors to a subset of modules (#1943) Fixes #1357 * Configure CI to run with Java 11 * Configure moditect for all modules, enable only on those that required it * Do not skip moditect when running tests * Only skip modules that don't work with moditect plugin --------- Co-authored-by: Marvin Froeder <[email protected]> Co-authored-by: Marvin Froeder <[email protected]>
* Adds explicit module descriptors to a subset of modules (#1943) Fixes #1357 * Configure CI to run with Java 11 * Configure moditect for all modules, enable only on those that required it * Do not skip moditect when running tests * Only skip modules that don't work with moditect plugin --------- Co-authored-by: Marvin Froeder <[email protected]> Co-authored-by: Marvin Froeder <[email protected]>
Applies the ModiTect Maven plugin to a select number of Maven modules.
Exports all packages by default as that's the current behavior when Automatic module names are in place.
Fine grained control of exported packages may be added at a later stage.
Fixes #1357