-
Notifications
You must be signed in to change notification settings - Fork 2
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
Improve the aggregator's maven publishing to support resolving package requirements #11
Comments
I added support for MavenDependencyMapping and use it like this for the platform SDK aggregator:
This above fixes this to produce the proper dependency: |
dependencies when generating pom Reduce the number of MavenMappings. Use the new CBI aggregators features described here to map based Maven metadata in p2 and to build Maven dependencies from java.package requirements: eclipse-cbi#11 Disable the validation repositories because they're not needed given the platform repository itself contains all requirements, and keeping them also results analysis anomalies because Orbit IUs are resolved where direct-from-Maven IUs are actually in the repository. eclipse-platform/eclipse.platform.releng#67
dependencies when generating pom Reduce the number of MavenMappings. Use the new CBI aggregators features described here to map based Maven metadata in p2 and to build Maven dependencies from java.package requirements: eclipse-cbi/p2repo-aggregator#11 Disable the validation repositories because they're not needed given the platform repository itself contains all requirements, and keeping them also results analysis anomalies because Orbit IUs are resolved where direct-from-Maven IUs are actually in the repository. eclipse-platform#67
dependencies when generating pom Reduce the number of MavenMappings. Use the new CBI aggregators features described here to map based Maven metadata in p2 and to build Maven dependencies from java.package requirements: eclipse-cbi/p2repo-aggregator#11 Disable the validation repositories because they're not needed given the platform repository itself contains all requirements, and keeping them also results analysis anomalies because Orbit IUs are resolved where direct-from-Maven IUs are actually in the repository. eclipse-platform#67
dependencies when generating pom Reduce the number of MavenMappings. Use the new CBI aggregator's features described here to map based Maven metadata in p2 and to build Maven dependencies from java.package requirements: eclipse-cbi/p2repo-aggregator#11 Disable the validation repositories because they're not needed given the platform repository itself contains all requirements, and keeping them also results analysis anomalies because Orbit IUs are resolved where direct-from-Maven IUs are actually in the repository. eclipse-platform#67
dependencies when generating pom Reduce the number of MavenMappings. Use the new CBI aggregator's features described here to map based Maven metadata in p2 and to build Maven dependencies from java.package requirements: eclipse-cbi/p2repo-aggregator#11 Disable the validation repositories because they're not needed given the platform repository itself contains all requirements, and keeping them also results analysis anomalies because Orbit IUs are resolved where direct-from-Maven IUs are actually in the repository. eclipse-platform#67
dependencies when generating pom Reduce the number of MavenMappings. Use the new CBI aggregator's features described here to map based Maven metadata in p2 and to build Maven dependencies from java.package requirements: eclipse-cbi/p2repo-aggregator#11 Disable the validation repositories because they're not needed given the platform repository itself contains all requirements, and keeping them also results analysis anomalies because Orbit IUs are resolved where direct-from-Maven IUs are actually in the repository.
dependencies when generating pom Reduce the number of MavenMappings. Use the new CBI aggregator's features described here to map based Maven metadata in p2 and to build Maven dependencies from java.package requirements: eclipse-cbi/p2repo-aggregator#11 Disable the validation repositories because they're not needed given the platform repository itself contains all requirements, and keeping them also results analysis anomalies because Orbit IUs are resolved where direct-from-Maven IUs are actually in the repository.
Provide improved support for specifying version ranges for package requirements. In particular, provide support for extracting the version components from the bundle(s) that provide(s) the capability that satisfies the requirement. For example, this syntax is supported: Here the Version Range Template value Also supported are simple expressions, e.g., where the |
In particular, support the ability to specify the version range of the dependency, including expressions to extract the version components from the bundle that provides the capability that satisfies the requirement, e.g., [major.minor.micro,major+1.0.0) #11 eclipse-platform/eclipse.platform.releng#119
Otherwise building the -SNAPSHOT version gets messed up. #11 eclipse-platform/eclipse.platform.releng#119
I'm testing using the platform's *.aggr which I've modified to add more rules for completeness of the mapping, including correctness for all dependencies:
The above selected maven mapping specifies to map any bundle to
$key$
wherekey
must be present as a property in the p2 metadata of the installable unit for the rule to be applicable. This normal default rule kicks in when that's not the case.A new tab in the Analyzer editor presents the information about the POM induced for each installable unit. Here we see that package imports are resolved to one or more installable units (two in the case selected below) and those are also mapped to dependencies:
The Analyzer editor analyzes each generated POM to ensure that the group/artifact information can be resolved to its maven metadata either remotely or locally, e.g.,
https://repo1.maven.org/maven2/org/eclipse/jdt/org.eclipse.jdt.apt.pluggable.core/maven-metadata.xml
It also tests that each dependency's version range resolves to an existing artifact version.
It's not clear whether adding support for
java.package
requirements will result in bogus or undesirable dependencies. In the example above. I think the dependency onecg
is undesirable (and definitely unnecessary), but I don't know if it's problematic. If you look at the most recent published version you can see that the dependencies for package imports were not present previously:https://repo1.maven.org/maven2/org/eclipse/jdt/org.eclipse.jdt.apt.pluggable.core/1.3.0/org.eclipse.jdt.apt.pluggable.core-1.3.0.pom
In other cases duplicates seem correct, e.g., as in this case involving split packages:
My sense though is that we need some general mechanism to control this new behavior or even to turn off this new behavior...
The text was updated successfully, but these errors were encountered: