interesting.
is the deploy goal executed twice as well when you run "mvn deploy"?
(as you marked as it as alwaysRun)

On Sun, 21 Jan 2024 at 23:00, Javier Gómez <javier.go...@prefapp.es> wrote:
>
> Hi all,
>
> We are starting to apply the build-cache maven extension in our local and CI 
> environment,  and we have seen strange behavior in several maven projects, 
> when using the release plugin in conjunction with build-cache, which we have 
> been able to reproduce both locally and in CI.
>
> Our usual release plugin configuration is:
>
>         <plugin>
>           <groupId>org.apache.maven.plugins</groupId>
>           <artifactId>maven-release-plugin</artifactId>
>           <version>3.0.0</version>
>           <configuration>
>             <arguments>-DskipEnforceSnapshots -DskipITs -DskipTests 
> -DskipUTs</arguments>
>             <goals>deploy</goals>
>             
> <projectVersionPolicyId>SemVerVersionPolicy</projectVersionPolicyId>
>             <releaseStrategyId>GithubReleaseStrategy</releaseStrategyId>
>             <scmReleaseCommitComment>@{prefix} Prepare release 
> @{releaseLabel}</scmReleaseCommitComment>
>             <scmDevelopmentCommitComment>@{prefix} Prepare for next 
> development iteration</scmDevelopmentCommitComment>
>             <tagNameFormat>@{project.version}</tagNameFormat>
>           </configuration>
>
> When we add the build-cache extension to the project, and execute the release 
> with: mvn release:prepare release:perform -DreleaseVersion=x.y.z we can 
> observe a strange behavior when maven is launching the release:perform goal, 
> we see that the deploy goal is executed 2 times for each artifact (in fact it 
> seems that the maven lifecycle restarts, once it reaches the deploy and 
> begins to execute the validate again) and when it reaches the 2nd execution 
> of deploy, it fails (since the user we use do not have permissions to 
> overwrite artifacts). Below I show an extract from the log:
>
> ...
>
> [INFO] [INFO] 
> ------------------------------------------------------------------------
> [INFO] [INFO] Reactor Build Order:
> [INFO] [INFO]
> [INFO] [INFO] temp.mectagcore:mectagcore                                 [pom]
> [INFO] [INFO] temp.mectagcore:mectagcore-domain                          [jar]
> [INFO] [INFO] temp.mectagcore:mectagcore-boot                            [jar]
> [INFO] [INFO] temp.mectagcore:jacoco-report-aggregate                    [pom]
> [INFO] [INFO]
> [INFO] [INFO] -----------------< temp.mectagcore:mectagcore >-----------------
> [INFO] [INFO] Building temp.mectagcore:mectagcore 1.0.0                  [1/9]
> [INFO] [INFO]   from pom.xml
> [INFO] [INFO] --------------------------------[ pom 
> ]---------------------------------
> [INFO] [INFO] Going to calculate checksum for project 
> [groupId=temp.mectagcore, artifactId=mectagcore]
> [INFO] [INFO] Project inputs calculated in 12 ms. SHA-256 checksum 
> [16534757c14aae9b1ff1961664995f0e7e9396fb88309d207a8a23c080c7f661] calculated 
> in 4 ms.
> [INFO] [INFO] Attempting to restore project temp.mectagcore:mectagcore from 
> build cache
> [INFO] [INFO] Local build found by checksum 
> 16534757c14aae9b1ff1961664995f0e7e9396fb88309d207a8a23c080c7f661
> [INFO] [INFO] Found cached build, restoring temp.mectagcore:mectagcore from 
> cache by checksum 
> 16534757c14aae9b1ff1961664995f0e7e9396fb88309d207a8a23c080c7f661
> [INFO] [INFO] Project temp.mectagcore:mectagcore restored partially. Highest 
> cached goal: verify, requested: deploy
> [INFO] role: 'org.apache.maven.plugin.Mojo', implementation: 
> 'org.apache.maven.plugin.failsafe.IntegrationTestMojo', role hint: 
> 'org.apache.maven.plugins:maven-failsafe-plugin:3.0.0:integration-test'
> [INFO] role: 'org.apache.maven.plugin.Mojo', implementation: 
> 'org.apache.maven.plugin.failsafe.VerifyMojo', role hint: 
> 'org.apache.maven.plugins:maven-failsafe-plugin:3.0.0:verify'
> [INFO] ---
> [INFO] [INFO] Skipping plugin execution (cached): enforcer:enforce
> [INFO] [INFO] Skipping plugin execution (cached): enforcer:enforce
> [INFO] [INFO] Skipping plugin execution (cached): build-helper:add-source
> [INFO] [INFO] Mojo execution is forced by project property: 
> amiga-assembly:amiga-assembly
> [INFO] [INFO]
> [INFO] [INFO] --- amiga-assembly:5.5.0:amiga-assembly 
> (amiga-assembly-execution) @ mectagcore ---
> [INFO] [INFO] Mojo execution is forced by project property: source:jar-no-fork
> [INFO] [INFO]
> [INFO] [INFO] --- source:3.2.1:jar-no-fork (attach-sources) @ mectagcore ---
> [INFO] [INFO] Skipping plugin execution (cached): failsafe:integration-test
> [INFO] [INFO] Skipping plugin execution (cached): failsafe:verify
> [INFO] [INFO]
> [INFO] [INFO] --- install:3.1.1:install (default-install) @ mectagcore ---
> [INFO] role: 'org.apache.maven.plugin.Mojo', implementation: 
> 'org.apache.maven.plugins.install.InstallMojo', role hint: 
> 'org.apache.maven.plugins:maven-install-plugin:3.1.1:install'
> [INFO] role: 'org.apache.maven.plugin.Mojo', implementation: 
> 'org.apache.maven.plugins.install.InstallFileMojo', role hint: 
> 'org.apache.maven.plugins:maven-install-plugin:3.1.1:install-file'
> [INFO] ---
> [INFO] [INFO] Installing 
> /tmp/mic-mectagcore/code/target/checkout/code/pom.xml to 
> /home/alambike/.m2/repository/temp/mectagcore/mectagcore/1.0.0/mectagcore-1.0.0.pom
> [INFO] [INFO]
> [INFO] [INFO] --- deploy:3.1.1:deploy (default-deploy) @ mectagcore ---
> [INFO] role: 'org.apache.maven.plugin.Mojo', implementation: 
> 'org.apache.maven.plugins.deploy.DeployFileMojo', role hint: 
> 'org.apache.maven.plugins:maven-deploy-plugin:3.1.1:deploy-file'
> [INFO] role: 'org.apache.maven.plugin.Mojo', implementation: 
> 'org.apache.maven.plugins.maven_deploy_plugin.HelpMojo', role hint: 
> 'org.apache.maven.plugins:maven-deploy-plugin:3.1.1:help'
> [INFO] ---
> [INFO] [INFO] Uploading to maven-artifacts: 
> https://xxx.jfrog.io/artifactory/maven-artifacts/temp/mectagcore/mectagcore/1.0.0/mectagcore-1.0.0.pom
> [INFO] [INFO] Uploaded to maven-artifacts: 
> https://xxx.jfrog.io/artifactory/maven-artifacts/temp/mectagcore/mectagcore/1.0.0/mectagcore-1.0.0.pom
>  (7.4 kB at 14 kB/s)
> [INFO] [INFO] Downloading from maven-artifacts: 
> https://xxx.jfrog.io/artifactory/maven-artifacts/temp/mectagcore/mectagcore/maven-metadata.xml
> [INFO] [INFO] Downloaded from maven-artifacts: 
> https://xxx.jfrog.io/artifactory/maven-artifacts/temp/mectagcore/mectagcore/maven-metadata.xml
>  (772 B at 16 kB/s)
> [INFO] [INFO] Uploading to maven-artifacts: 
> https://xxx.jfrog.io/artifactory/maven-artifacts/temp/mectagcore/mectagcore/maven-metadata.xml
> [INFO] [INFO] Uploaded to maven-artifacts: 
> https://xxx.jfrog.io/artifactory/maven-artifacts/temp/mectagcore/mectagcore/maven-metadata.xml
>  (724 B at 1.6 kB/s)
> [INFO] [INFO]
> [INFO] [INFO] --- enforcer:3.3.0:enforce (enforce-banned-dependencies) @ 
> mectagcore ---
> [INFO] [INFO] Rule 0: 
> org.apache.maven.enforcer.rules.dependency.BannedDependencies passed
> [INFO] [INFO]
> [INFO] [INFO] --- enforcer:3.3.0:enforce (enforce-build-tools-versions) @ 
> mectagcore ---
> [INFO] [INFO] Rule 0: 
> org.apache.maven.enforcer.rules.version.RequireMavenVersion passed
> [INFO] [INFO] Rule 1: 
> org.apache.maven.enforcer.rules.version.RequireJavaVersion passed
> [INFO] [INFO]
> [INFO] [INFO] --- build-helper:3.3.0:add-source (add-classes) @ mectagcore ---
> [INFO] [INFO] Source directory: 
> /tmp/mic-mectagcore/code/target/checkout/code/target/generated-sources/annotations
>  added.
> [INFO] [INFO] Source directory: 
> /tmp/mic-mectagcore/code/target/checkout/code/target/generated-sources/event 
> added.
> [INFO] [INFO]
> [INFO] [INFO] --- amiga-assembly:5.5.0:amiga-assembly 
> (amiga-assembly-execution) @ mectagcore ---
> [INFO] [INFO]
> [INFO] [INFO] --- source:3.2.1:jar-no-fork (attach-sources) @ mectagcore ---
> [INFO] [INFO]
> [INFO] [INFO] --- failsafe:3.0.0:integration-test (default) @ mectagcore ---
> [INFO] role: 'org.apache.maven.plugin.Mojo', implementation: 
> 'org.apache.maven.plugin.failsafe.IntegrationTestMojo', role hint: 
> 'org.apache.maven.plugins:maven-failsafe-plugin:3.0.0:integration-test'
> [INFO] role: 'org.apache.maven.plugin.Mojo', implementation: 
> 'org.apache.maven.plugin.failsafe.VerifyMojo', role hint: 
> 'org.apache.maven.plugins:maven-failsafe-plugin:3.0.0:verify'
> [INFO] ---
> [INFO] [INFO] Tests are skipped.
> [INFO] [INFO] Tests are skipped.
> [INFO] [INFO]
> [INFO] [INFO] --- install:3.1.1:install (default-install) @ mectagcore ---
> [INFO] role: 'org.apache.maven.plugin.Mojo', implementation: 
> 'org.apache.maven.plugins.install.InstallMojo', role hint: 
> 'org.apache.maven.plugins:maven-install-plugin:3.1.1:install'
> [INFO] role: 'org.apache.maven.plugin.Mojo', implementation: 
> 'org.apache.maven.plugins.install.InstallFileMojo', role hint: 
> 'org.apache.maven.plugins:maven-install-plugin:3.1.1:install-file'
> [INFO] ---
> [INFO] [INFO] Installing 
> /tmp/mic-mectagcore/code/target/checkout/code/pom.xml to 
> /home/alambike/.m2/repository/temp/mectagcore/mectagcore/1.0.0/mectagcore-1.0.0.pom
> [INFO] [INFO]
> [INFO] [INFO] --- deploy:3.1.1:deploy (default-deploy) @ mectagcore ---
> [INFO] role: 'org.apache.maven.plugin.Mojo', implementation: 
> 'org.apache.maven.plugins.deploy.DeployFileMojo', role hint: 
> 'org.apache.maven.plugins:maven-deploy-plugin:3.1.1:deploy-file'
> [INFO] role: 'org.apache.maven.plugin.Mojo', implementation: 
> 'org.apache.maven.plugins.maven_deploy_plugin.HelpMojo', role hint: 
> 'org.apache.maven.plugins:maven-deploy-plugin:3.1.1:help'
> [INFO] ---
> [INFO] [INFO] Uploading to maven-artifacts: 
> https://xxx.jfrog.io/artifactory/maven-artifacts/temp/mectagcore/mectagcore/1.0.0/mectagcore-1.0.0.pom
> [INFO] [INFO] 
> ------------------------------------------------------------------------
> [INFO] [INFO] Reactor Summary for temp.mectagcore:mectagcore 1.0.0:
> [INFO] [INFO]
> [INFO] [INFO] temp.mectagcore:mectagcore ................. FAILURE [  2.809 s]
> ...
> [INFO] [ERROR] Failed to execute goal 
> org.apache.maven.plugins:maven-deploy-plugin:3.1.1:deploy (default-deploy) on 
> project mectagcore: Failed to deploy artifacts: Could not transfer artifact 
> temp.mectagcore:mectagcore:pom:1.0.0 from/to maven-artifacts 
> (https://xxx.jfrog.io/artifactory/maven-artifacts): status code: 403, reason 
> phrase:  (403) -> [Help 1]
> [INFO] org.apache.maven.lifecycle.LifecycleExecutionException: Failed to 
> execute goal org.apache.maven.plugins:maven-deploy-plugin:3.1.1:deploy 
> (default-deploy) on project mectagcore: Failed to deploy artifacts: Could not 
> transfer artifact temp.mectagcore:mectagcore:pom:1.0.0 from/to 
> maven-artifacts (https://xxx.jfrog.io/artifactory/maven-artifacts): status 
> code: 403, reason phrase:  (403)
>
> If we disable the build-cache during release targets, we see that this does 
> not happen and we only have one deploy run that completes successfully:
>
>          <configuration>
>             <arguments>-DskipEnforceSnapshots -DskipITs -DskipTests -DskipUTs 
> -Dmaven.build.cache.enabled=false</arguments>
>             <goals>deploy</goals>
>              ...
>
>
> Somehow, by having the build-cache extension active during release goals, we 
> have a double execution of the maven lifecycle, which causes the release to 
> fail, (as we do not allow the user who publishes the artifacts overwrite 
> these artifacts). We have reproduced this with:
>
> maven 3.9.4 y maven 3.9.6
> openjdk 17
> maven-release-plugin: 3.0.0
> build-cache extension 1.1.0 (our build cache config file is attached to the 
> message)
>
> I am writing to you in case anyone can shed some light on this case. In any 
> case, we understand that the most appropriate thing is to disable the build 
> cache extension in the configuration of the release plugin goals, and maybe 
> it should be documented. Thanks in advance.
> --
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
> For additional commands, e-mail: dev-h...@maven.apache.org

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
For additional commands, e-mail: dev-h...@maven.apache.org

Reply via email to