-
Notifications
You must be signed in to change notification settings - Fork 9
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
Auto-export MVN dependencies #56
Comments
@FroMage don't we also need to do something like this in |
It's doable - I just wrote something similar on bytecode level. But how do you know from which jar to take the depending class? This can bring more problems then solve them imo. I do agree it's a pita, but once the user knows this can fail, |
From the jars in the list of direct imported modules, no? Can this be anywhere else? |
Well, no I guess not because Oh I guess we also have to do this check for JBoss modules defined with |
Well |
Yes. |
Yes. |
Well, it may have a range, but when we query there must be an option to "select" which imported version was chosen by aether, no? |
So, perhaps this is only something that is needed for compilation, and not at runtime, because @alesj tells me we should not get |
All Maven issues move to 1.0 |
Superceded by #81 |
As shown in ceylon/ceylon-compiler#1100 it can be extremely hard to use maven dependencies since maven doesn't export the imported modules that it exposes in its shared API, which break the Ceylon module contract. When we resolve mvn dependencies, we should scan its jar and see if its shared API (public classes, their supertypes,interfaces, their public methods/fields, inner classes) exposes a class that does not come from its jar, and find out which of its imported modules exposes that class and automatically mark its import as
shared
.This is likely to be expensive, but only need to be done once per mvn jar and cached, we can/should also make (cached) indexes of the classes defined in each mvn jar to make this process faster.
WDYT @alesj?
The text was updated successfully, but these errors were encountered: