Builds using skipLocalStaging option and SNAPSHOT artifacts can take up to 2x longer using nexus-staging-maven-plugin as compared to maven-deploy-plugin.
See README.md in attached reproduce case.
Using Maven 3.2.1:
Setup: Prime local repo
./mvn clean install -f build1/pom.xml
Setup: Local Nexus instance
Start Nexus at http://localhost:8081/nexus
Execute build using maven-deploy-plugin, no deploy at end. Observe wall clock build time reported by Maven.
time verbose=y bash -x ./mvn clean deploy -f build1/pom.xml -Dbuildsupport-staging.skip -T 4
Execute build using nexus-staging plugin, no deploy at end. Observe wall clock build time reported by Maven.
time verbose=y bash -x ./mvn clean deploy -f build1/pom.xml -DskipLocalStaging=true -T 4
- nexus-staging plugin is usually 2x slower, but sometimes just as fast.
- total per module build time != total wall clock time as there are parallel threads executing (expected but maven-deploy-plugin does not seem to have this problem)
- jdk8 has a long delay at end of build doing some sort of cleanup, jdk7 always ends immediately ( just to note in case someone is looking for general speedup)
- for every `[INFO] org.sonatype.nexus.maven.staging.deploy.DeployMojo - Waiting for other projects build to finish... `
log statement, NSMP adds an artificial delay of 2 seconds
- why wait for other modules at all if we are deploying SNAPSHOT versions and not using deploy at end or staging features?
- "the correct way to do this in m3 is using LifecycleParticipant"