[
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)