I have a maven project with 2 modules and a parent pom as such
<modules>
<module>api</module>
<module>service</module>
</modules>
I would like to take advantage of the maven cache extension and I've added it in the build section of the parent pom as such
<extensions>
<extension>
<groupId>org.apache.maven.extensions</groupId>
<artifactId>maven-build-cache-extension</artifactId>
<version>1.0.0</version>
</extension>
</extensions>
I've also added a maven-build-cache-config.xml file however it would seem that every time I run mvn clean package
a different checksum is generated for my submodules and as a result I don't actually benefit from the caching since all my java files are in those submodules
I've tried multiple configs with no luck unfortunately
<?xml version="1.0" encoding="UTF-8" ?>
<cache xmlns="http://maven.apache.org/BUILD-CACHE-CONFIG/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/BUILD-CACHE-CONFIG/1.0.0 http://maven.apache.org/xsd/cache-config-1.0.0.xsd">
<configuration>
<enabled>true</enabled>
<hashAlgorithm>XX</hashAlgorithm>
</configuration>
<input>
<global>
<glob>{*.java,*.xml,*.properties}</glob>
<includes>
<include>recursive=api/*</include>
<include>recursive=service/*</include>
</includes>
</global>
</input>
</cache>
How can I make this extension actually cache the contents of my submodules with the same checksum if there haven't been changes. I know this extension is fairly recent and I haven't been able to find any hits online.
EDIT
Commenting one of the child modules out, actually ended up working and the cache is kicking in correctly. Is it possible there's a limitation to the extension in that it scans for a single module?
It turns out the issue was a "false alarm". In my api module I have a swagger file which would generate POJOs in the ignore-generated
folder, so the fix is to add the following within this particular module and then everything is working as expected with proper caching in place.
<properties>
<maven.build.cache.exclude.ignore-generated>${project.basedir}/ignore-generated</maven.build.cache.exclude.ignore-generated>
</properties>