Repository navigation
Build the Maven dependency tree with Maven Resolver instead of maven-dependency-tree - #9694
slachiewicz wants to merge 1 commit into
Conversation
|
checked a few friend packages I could still find inactive: active, but no most of the other stuff looks like modules within this repo (some of it doesn't exist anymore too, e.g -> we should be fine |
…dependency-tree DependencyTreeFactory now collects the project graph with the Maven Resolver conflict resolver in verbose mode and returns a NetBeans-owned DependencyNode, so the unmaintained maven-dependency-tree 2.2 jar and its friend packages go. Assisted-by: Claude Opus 5.5
0dc1381 to
dfe9dca
Compare
|
Switched |
|
Can't believe it's green. Or too early to celebrate? |
its a good sign from the CI gremlins! Some of the CI jobs are a bit brittle and need restarts, so a single failure wouldn't necessarily mean its a regression. We would create the release branches for NB 32 this week (~15th). I think #9642 has a small chance to make it still in - mostly because its not clear if anyone tested it beside me. Putting NB 33 milestone on this PR here. Thanks a lot for helping with this btw! |
To early with 3.10 yet. Wait for few more patch releases - i'll take look next week to report/fix issues with upgrade |
DependencyTreeFactorystill built trees with maven-dependency-tree 2.2 (2014), whoseDependencyTreeBuildergoes through maven-compat's legacyArtifactCollector— theTODO: check alternative for deprecated maven componentsin that class. This replaces it with Maven Resolver's own verbose collection and drops the bundled jar.DependencyTreeFactorycollects the project's dependencies withConflictResolverin verbose mode, using a session from the newMavenEmbedder.newRepositorySession()(settings, mirrors, workspace reader, offline flag).org.netbeans.modules.maven.embedder.tree.DependencyNodeandDependencyNodeVisitor, keeping the part of the old API NetBeans uses, so the 15 classes inmaven,maven.graphandmaven.repositoryonly change imports.INCLUDED; a loser whose winner is an ancestor isOMITTED_FOR_CYCLE; same base version as the winner isOMITTED_FOR_DUPLICATE; otherwiseOMITTED_FOR_CONFLICT, with the winner as related artifact.Behaviour differences:
OMITTED_FOR_CYCLEis effectively never produced.Compatibility:
maven.embeddergoes to 2.90 and no longer exportsorg.apache.maven.shared.dependency.{tree,tree.traversal,graph,graph.filter,graph.traversal}to friends. That is incompatible for any friend module compiling against those packages. None of the external friends inproject.xmluses them: GitHub code search finds no reference in jeddict (jeddict-modeler, jeddict-extensions), sqe-team/sqe, vaadin/netbeans-plugin (archived), NbAppEngine or the netbeans-contrib selenium module.apisupport.installer.mavenandmaven.utilare former NetBeans modules no longer in the tree, andjbi.fuji.supportandandroid.mavenhave no public source. The change is recorded inapichanges.xml.apichanges.xmlnow usesapichanges-1.1.dtd, whose year list already covers 2026.Not tested manually in a running IDE (dependency graph, exclude dependency, create library dialogs).
Verified:
ant -f java/maven.embedder test→ DependencyTreeFactoryTest 5/5 and the existing embedder tests green;ant -f java/maven test→ 418 tests, 0 failures;ant -Dcluster.config=java verify-libs-and-licenses→ 0 failures.Assisted-by: Claude Opus 5.5