-
-
Notifications
You must be signed in to change notification settings - Fork 117
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
JPMS #1209
Comments
At least the dependency consistency check would really be helpful, so that Not sure about |
AFAIK runtime only dependencies should be excluded from There's one exception to things being added to |
Thanks for the issue. I'm not entirely clear on what the request is. What does this plugin do now, and what should it do differently? The issue title is also just a noun ("JPMS"), when a sentence with a verb would clarify things for me. |
Currently, the plugin validates dependencies declared in build logic. In the It can easily happen that the scopes you use in both places differ. It would be great if the plugin could also verify the dependencies in the That's what I hope for to get from this issue. Caleb described some further things, I just am not sure how helpful those would be. :-) |
Additionally to external dependencies, it would of course be awesome to get advice which JRE modules are needed in which scopes too. |
also this is creating false positives
but in import org.jspecify.annotations.NullMarked;
@NullMarked module com.xenoterracide.commons.jpa.test {
opens com.xenoterracide.commons.jpa.test
to org.junit.platform.commons, org.hibernate.orm.core, net.bytebuddy, spring.core;
opens com.xenoterracide.commons.jpa.test.transaction
to org.junit.platform.commons, org.hibernate.orm.core, net.bytebuddy, spring.core;
requires org.assertj.core;
requires com.xenoterracide.commons.jpa;
requires org.junit.jupiter.api;
requires org.junit.jupiter.params;
requires spring.beans;
requires spring.boot.test;
requires spring.tx;
requires org.hibernate.orm.envers;
requires org.apache.commons.lang3;
requires com.xenoterracide.jpa.fixtures;
requires spring.test;
requires spring.boot.test.autoconfigure;
requires spring.orm;
requires org.jspecify;
} what information is still needed? note: your verb is probably support. Currently JPMS isn't looked at, used, or included as part of the analysis. |
Essentially all of my work is in a Kotlin environment, where JPMS is not used, therefore I have limited experience with that. I'm happy to attempt to support it here, but I'm going to need some help to understand the requirements. One thing that might help me is to describe, in natural language, what the spec is. You could write pseudocode Specifications (to use Spock lingo) that demonstrate various situations that can occur and what you'd expect DAGP's advice to be. Or if you're comfortable with how DAGP's test suite works, you could write actual failing specs. Let me know how I can help. |
Is your feature request related to a problem? Please describe.
java module (module-info) should agree with the gradle dependencies, for example
compileOnlyApi
should generally matchrequires static transitive
I suspect this is a bidirectional thing though. For example if I have
exports com.myorg.foo
but do not haveexports com.myorg.foo.internal
then even if something that would normally be detected asapi
should not be api.if possible,
opens... to
specifications should possibly be determined, I suspect this would require looking at tests though.I hope this is clearer than mud.
cc: @jjohannes you might be interested in this issue, or have ideas/suggestions
The text was updated successfully, but these errors were encountered: