You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Tomáš Mrázek (Jira)" <ji...@apache.org> on 2023/03/30 02:51:00 UTC

[jira] [Commented] (MBUILDCACHE-45) Compiled classes are not copied/restored to target, causing higher phase builds to fail

    [ https://issues.apache.org/jira/browse/MBUILDCACHE-45?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17706667#comment-17706667 ] 

Tomáš Mrázek commented on MBUILDCACHE-45:
-----------------------------------------

 

You have to for some reason explicitly configure target subfolders. 
{code:java}
<configuration>
    <attachedOutputs>
        <dirNames>
            <dirName>classes</dirName>
            <dirName>generated-sources</dirName>
            <dirName>maven-status</dirName>
        </dirNames>
    </attachedOutputs>
</configuration> {code}
Then those subfolders are correctly zipped and stored and restored in cache.

I am on the other hand unable to restore the jar itself to target folder. Maybe I just don't get the point of the extension.

Anyways I would expect, that input section would specify files to calculate hash and defaults to include -> src, and output section would specify actual files to cache and default to include -> target. Include cannot be specified for the output tho. And attachedOutputs section is inherently defined for target. Again I would expect this section to convey cacheable artefacts outside of the target as some special cases. And I would expect, that all outputs would be cached/zipped for every phase and then properly restored for the highest phase run.

Attached outputs are always restored no matter the phase.

 

> Compiled classes are not copied/restored to target, causing higher phase builds to fail
> ---------------------------------------------------------------------------------------
>
>                 Key: MBUILDCACHE-45
>                 URL: https://issues.apache.org/jira/browse/MBUILDCACHE-45
>             Project: Maven Build Cache Extension
>          Issue Type: Bug
>         Environment: windows
>            Reporter: Miguel Ortega
>            Priority: Major
>         Attachments: maven-cache.zip
>
>
> +*Step to reproduce*+
> 1. Execute a first command
> {code:java}
> mvn test{code}
> Results are cached (contrary to documentation that states that "cache will kick-in automatically on every lifecycle build of phase {{package}} or higher.") This could also be a feature since tests can be skipped if nothing changes.
> 2 . But if I run next: 
> {code:java}
> mvn clean verify
> #OR
> mvn clean install{code}
> Then the build fails
> {code:java}
> [ERROR] Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:3.0.2:repackage (repackage) on project demo: Execution repackage of goal org.springframework.boot:spring-boot-maven-plugin:3.0.2:repackage failed: Unable to find main class -> [Help 1]
> [ERROR]
>  {code}
> The root cause seems to be that after "clean", the maven target directory is cleaned and even if the cache is detected, classes are not restored to the target folder anymore
> {code:java}
> [INFO] Attempting to restore project com.example:demo from build cache
> [INFO] Remote cache is incomplete or missing, trying local build for com.example:demo
> [INFO] Local build found by checksum 596f60b3f5056d7d
> [INFO] Found cached build, restoring com.example:demo from cache by checksum 596f60b3f5056d7d
> [INFO] Project com.example:demo restored partially. Highest cached goal: test, requested: install
> [INFO] Skipping plugin execution (cached): resources:resources
> [INFO] Skipping plugin execution (cached): compiler:compile
> [INFO] Skipping plugin execution (cached): resources:testResources
> [INFO] Skipping plugin execution (cached): compiler:testCompile
> [INFO] Skipping plugin execution (cached): surefire:test {code}
> *+Workaround+*
> Manually remove cache data or disable cache via command line argument
> *+Environment+*
> {code:java}
> Apache Maven 3.9.0 (9b58d2bad23a66be161c4664ef21ce219c2c8584)
> Maven home: <REDACTED>
> Java version: 17.0.1, vendor: Eclipse Adoptium, runtime: <REDACTED>
> Default locale: fr_FR, platform encoding: Cp1252
> OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"{code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)