Conversation
api/pom.xml and impl/pom.xml bound maven-source-plugin's 'aggregate' goal
to the package phase of their aggregator POM. 'aggregate' forks a
generate-sources lifecycle over every module, and a forked lifecycle
resolves its dependencies from the local repository rather than the
reactor. Running at api-parent - module 2 of 122 - it looked for
event-api before the reactor had built it, so 'mvn clean install' from
the root failed there on any build whose version was not already in
~/.m2, which is every build right after a version bump. impl-parent had
the same problem at module 33. Note -Dmaven.source.skip=true does not
help: the fork is planned before the skip flag is evaluated.
Moving both executions into a 'sources' profile keeps them out of the
default build, so a plain 'mvn clean install' now works in a single pass
from a cold local repository. The aggregated JARs are still needed by the
app-developer kit, which is built with a second pass:
mvn clean install -DskipTests
mvn install -Psources -DskipTests
Verified on develop from a purged ~/.m2: both passes give
122 SUCCESS / 0 FAILURE / 0 SKIPPED, with no forks in pass 1, and
app-developer/target/lib ends up with the same contents as before.
See cytoscape/cytoscape#35
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Maven 3.8.1 and later refuse to resolve artifacts from plain http://
repositories, rejecting them via the built-in maven-default-http-blocker
mirror. Every remaining http:// nrnb-nexus URL, and the http:// Maven
Central URL in the Travis settings, is switched to https. The nexus and
Central both serve https, and the repository ids are unchanged, so
artifacts already cached in ~/.m2 stay valid.
Verified on develop with stock Maven 3.9.14 - no -s settings file, so the
http blocker is fully active - from a local repository with the Cytoscape
3.11.0-SNAPSHOT artifacts and the cytoscape-temp/cytoscape-sun
third-party trees deleted:
mvn clean install -DskipTests -> 122 SUCCESS / 0 FAILURE
mvn install -Psources -DskipTests -> 122 SUCCESS / 0 FAILURE
Zero blocked-mirror errors, 114 artifacts fetched over https.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughThe PR changes Maven repository URLs from HTTP to HTTPS and moves aggregate source generation from the default build into an opt-in ChangesBuild configuration
Estimated code review effort: 2 (Simple) | ~10 minutes Merge Risk: ⚪ Minimal · up to This change moves source aggregation into an explicit build profile and updates repository URLs to HTTPS; no actionable merge-blocking risk remains after normal checks and review. Possibly related issues
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Part of the multi-repository fix for cytoscape/cytoscape#35. Main description and full verification: cytoscape/cytoscape#36.
Changes
Move
source:aggregateinto asourcesprofile.api/pom.xmlbound maven-source-plugin'saggregategoal to thepackagephase ofapi-parent. That goal forks agenerate-sourceslifecycle over every module, and a forked lifecycle resolves dependencies from the local repository rather than the reactor — so atapi-parent, module 2 of 122, it looked forevent-apibefore the reactor had built it. Any build whose version was not already in~/.m2died there, which is every build right after a version bump.Not a circular dependency: the module graph is acyclic and the reactor order was already correct. Also note
-Dmaven.source.skip=truedoes not help — the fork is planned before the skip flag is evaluated.The aggregated sources JAR is still needed by the app-developer kit, so it moves to a
sourcesprofile used as a second pass:Use HTTPS for Maven repositories. The remaining
http://URLs in.travis.settings.xmlbecomehttps://; Maven 3.8.1+ blocks plain http. Repository ids are unchanged, so cached artifacts stay valid.Verification
Verified as part of the full seven-repository build on
developagainst a genuinely empty local repository with no settings file: 122 SUCCESS / 0 FAILURE on both passes, zero blocked-mirror errors. Details in cytoscape/cytoscape#36.🤖 Generated with Claude Code
Summary by CodeRabbit
Build Improvements
Documentation