[ 
https://issues.apache.org/jira/browse/MBUILDCACHE-102?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Scott Feldstein updated MBUILDCACHE-102:
----------------------------------------
    Description: 
Hello,

My colleague is having issues on his windows development laptop building with 
the maven build-cache extension enabled.  The issue appears to be associated 
with the configuration file when parsing {{**}} in an ant path expression 
element (stack below).  The configuration file is based on the [config 
example|https://maven.apache.org/extensions/maven-build-cache-extension/maven-build-cache-config.xml]
 in the [getting started 
guide|https://maven.apache.org/extensions/maven-build-cache-extension/getting-started.html]
 (see below for my exact configuration).  When we remove 
{{src/main/javagen/**}} from the config then everything works fine.
h1. Stacktrace
{code:java}
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  1.159 s
[INFO] Finished at: 2024-08-15T10:04:09-07:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to calculate checksums for cs-parent: Illegal char <*> at index 
17: src\main\javagen\**
java.lang.RuntimeException: Failed to calculate checksums for cs-parent
    at 
org.apache.maven.buildcache.DefaultProjectInputCalculator.calculateInputInternal
 (DefaultProjectInputCalculator.java:114)
    at org.apache.maven.buildcache.DefaultProjectInputCalculator.calculateInput 
(DefaultProjectInputCalculator.java:89)
    at org.apache.maven.buildcache.CacheControllerImpl.findCachedBuild 
(CacheControllerImpl.java:180)
    at org.apache.maven.buildcache.BuildCacheMojosExecutionStrategy.execute 
(BuildCacheMojosExecutionStrategy.java:128)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute 
(MojoExecutor.java:159)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject 
(LifecycleModuleBuilder.java:105)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject 
(LifecycleModuleBuilder.java:73)
    at 
org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build
 (SingleThreadedBuilder.java:53)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute 
(LifecycleStarter.java:118)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke 
(NativeMethodAccessorImpl.java:77)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke 
(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:568)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced 
(Launcher.java:283)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch 
(Launcher.java:226)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode 
(Launcher.java:407)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main 
(Launcher.java:348)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke 
(NativeMethodAccessorImpl.java:77)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke 
(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:568)
    at org.apache.maven.wrapper.BootstrapMainStarter.start 
(BootstrapMainStarter.java:53)
    at org.apache.maven.wrapper.WrapperExecutor.execute 
(WrapperExecutor.java:152)
    at org.apache.maven.wrapper.MavenWrapperMain.main (MavenWrapperMain.java:76)
Caused by: java.nio.file.InvalidPathException: Illegal char <*> at index 17: 
src\main\javagen\**
    at sun.nio.fs.WindowsPathParser.normalize (WindowsPathParser.java:182)
    at sun.nio.fs.WindowsPathParser.parse (WindowsPathParser.java:153)
    at sun.nio.fs.WindowsPathParser.parse (WindowsPathParser.java:77)
    at sun.nio.fs.WindowsPath.parse (WindowsPath.java:92)
    at sun.nio.fs.WindowsFileSystem.getPath (WindowsFileSystem.java:232)
    at java.nio.file.Path.of (Path.java:147)
    at java.nio.file.Paths.get (Paths.java:69)
    at org.apache.maven.buildcache.checksum.exclude.Exclusion.<init> 
(Exclusion.java:70)
    at 
org.apache.maven.buildcache.checksum.exclude.ExclusionResolver.addExclusion 
(ExclusionResolver.java:104)
    at org.apache.maven.buildcache.checksum.exclude.ExclusionResolver.<init> 
(ExclusionResolver.java:73)
    at org.apache.maven.buildcache.checksum.MavenProjectInput.<init> 
(MavenProjectInput.java:169)
    at 
org.apache.maven.buildcache.DefaultProjectInputCalculator.calculateInputInternal
 (DefaultProjectInputCalculator.java:103)
    at org.apache.maven.buildcache.DefaultProjectInputCalculator.calculateInput 
(DefaultProjectInputCalculator.java:89)
    at org.apache.maven.buildcache.CacheControllerImpl.findCachedBuild 
(CacheControllerImpl.java:180)
    at org.apache.maven.buildcache.BuildCacheMojosExecutionStrategy.execute 
(BuildCacheMojosExecutionStrategy.java:128)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute 
(MojoExecutor.java:159)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject 
(LifecycleModuleBuilder.java:105)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject 
(LifecycleModuleBuilder.java:73)
    at 
org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build
 (SingleThreadedBuilder.java:53)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute 
(LifecycleStarter.java:118)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke 
(NativeMethodAccessorImpl.java:77)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke 
(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:568)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced 
(Launcher.java:283)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch 
(Launcher.java:226)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode 
(Launcher.java:407)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main 
(Launcher.java:348)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke 
(NativeMethodAccessorImpl.java:77)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke 
(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:568)
    at org.apache.maven.wrapper.BootstrapMainStarter.start 
(BootstrapMainStarter.java:53)
    at org.apache.maven.wrapper.WrapperExecutor.execute 
(WrapperExecutor.java:152)
    at org.apache.maven.wrapper.MavenWrapperMain.main (MavenWrapperMain.java:76)
[ERROR]
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
 {code}
h1. My Configuration
{code:java}
<?xml version="1.0" encoding="UTF-8" ?>
<!---
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
 The ASF licenses this file to You under the Apache License, Version 2.0
 (the "License"); you may not use this file except in compliance with
 the License.  You may obtain a copy of the License at      
http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or 
agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
-->
<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 
https://maven.apache.org/xsd/build-cache-config-1.0.0.xsd";>    <!--
        Template for file comes from 
https://maven.apache.org/extensions/maven-build-cache-extension/build-cache-config.html
     -->    <configuration>
        <enabled>true</enabled>
        <hashAlgorithm>SHA-256</hashAlgorithm>
        <validateXml>true</validateXml>
        <remote enabled="false">
            <url>http://host:port</url>
        </remote>
        <local>
            <maxBuildsCached>3</maxBuildsCached>
        </local>
        <projectVersioning adjustMetaInf="true"/>
    </configuration>    <input>
        <global>
            <!-- If not defined, default glob is "*" -->
            <glob>
                
{*.java,*.groovy,*.yaml,*.svcd,*.proto,*assembly.xml,assembly*.xml,*logback.xml,*.vm,*.ini,*.jks,*.properties,*.sh,*.bat}
            </glob>
            <includes>
                <!-- By default, project sources and resources directories are 
included (src/main/java and src/main/resources) -->
                <!-- In this example, the goal is to include a wider range of 
src directories (like src/main/assembly or src/main/groovy) -->
                <include>src/</include>
            </includes>
            <excludes>
                <!-- We don't want a static "hash" pom resolution (it would 
conflict the will to adjust the version in the manifest), -->
                <!-- we exclude this specific file (as it is already by default 
since it is not in an include folder -->
                <!-- The need to rebuild a project based on the pom is already 
computed with some intelligence by the extension. -->
                <exclude>pom.xml</exclude>
                <!-- Also excluding everything located in this project specific 
folder -->
                <exclude>src/main/javagen/**</exclude>
            </excludes>
        </global>
        <plugins>
            <plugin artifactId="codegen">
                <effectivePom>
                    <excludeProperties>
                        <excludeProperty>111</excludeProperty>
                    </excludeProperties>
                </effectivePom>
                <dirScan mode="auto">
                    <excludes>
                        <exclude tagName="outputDirectory"/>
                        <exclude tagName="directory"/>
                    </excludes>
                    <tagScanConfigs>
                        <tagScanConfig tagName="someProperty" glob="*.java" 
recursive="false"/>
                    </tagScanConfigs>
                </dirScan>
                <executions>
                    <execution>
                        <execIds>
                            <execId>1</execId>
                            <execId>2</execId>
                        </execIds>
                        <dirScan mode="auto">
                            <includes>
                                <include tagName="protolocation" 
recursive="false" glob="*.proto"/>
                            </includes>
                        </dirScan>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </input>
    <executionControl>
        <runAlways>
            <plugins>
                <plugin artifactId="maven-failsafe-plugin"/>
            </plugins>
            <executions>
                <execution artifactId="maven-deploy-plugin">
                    <execIds>
                        <execId>my-execution-id</execId>
                    </execIds>
                </execution>
            </executions>
            <goalsLists>
                <goalsList artifactId="maven-install-plugin">
                    <goals>
                        <goal>install</goal>
                    </goals>
                </goalsList>
                <goalsList artifactId="maven-deploy-plugin">
                    <goals>
                        <goal>deploy</goal>
                    </goals>
                </goalsList>
                <goalsList artifactId="bb-sdk-codegen">
                    <goals>
                        <goal>deploy-local</goal>
                    </goals>
                </goalsList>
            </goalsLists>
        </runAlways>
        <reconcile logAllProperties="true">
            <plugins>
                <plugin artifactId="maven-compiler-plugin" goal="compile">
                    <reconciles>
                        <reconcile propertyName="source"/>
                        <reconcile propertyName="target"/>
                        <reconcile propertyName="debug"/>
                        <reconcile propertyName="debuglevel"/>
                    </reconciles>
                    <!-- whitelist of logged properties-->
                    <logs>
                        <log propertyName="includes"/>
                        <log propertyName="excludes"/>
                        <log propertyName="argLine"/>
                    </logs>
                </plugin>
                <plugin artifactId="duplicate-finder-maven-plugin" goal="check">
                    <reconciles>
                        <reconcile propertyName="skip" skipValue="true"/>
                        <reconcile propertyName="quiet" skipValue="true"/>
                    </reconciles>
                </plugin>
                <plugin artifactId="maven-enforcer-plugin" goal="enforce">
                    <reconciles>
                        <reconcile propertyName="skip" skipValue="true"/>
                    </reconciles>
                    <!-- blacklisted from logging properties-->
                    <nologs>
                        <nolog propertyName="redundantProperty"/>
                        <nolog propertyName="redundantProperty2"/>
                    </nologs>
                </plugin>
                <plugin artifactId="maven-surefire-plugin" goal="test">
                    <reconciles>
                        <reconcile propertyName="skip" skipValue="true"/>
                        <reconcile propertyName="skipExec" skipValue="true"/>
                        <reconcile propertyName="skipTests" skipValue="true"/>
                        <reconcile propertyName="testFailureIgnore" 
skipValue="true"/>
                    </reconciles>
                </plugin>
            </plugins>
        </reconcile>
    </executionControl>
</cache> {code}

  was:
Hello,

My colleague is having issues on his windows development laptop building with 
the maven build-cache extension enabled.  The issue appears to be associated 
with the configuration file when parsing {{**}} ** in an ant path expression 
element (stack below).  The configuration file is based on the [config 
example|https://maven.apache.org/extensions/maven-build-cache-extension/maven-build-cache-config.xml]
 in the [getting started 
guide|https://maven.apache.org/extensions/maven-build-cache-extension/getting-started.html]
 (see below for my exact configuration).  When we remove 
*{{{}src/main/javagen{}}}{{{}/*{}}}{{{}*{}}}* from the config then everything 
works fine.
h1. Stacktrace
{code:java}
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  1.159 s
[INFO] Finished at: 2024-08-15T10:04:09-07:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to calculate checksums for cs-parent: Illegal char <*> at index 
17: src\main\javagen\**
java.lang.RuntimeException: Failed to calculate checksums for cs-parent
    at 
org.apache.maven.buildcache.DefaultProjectInputCalculator.calculateInputInternal
 (DefaultProjectInputCalculator.java:114)
    at org.apache.maven.buildcache.DefaultProjectInputCalculator.calculateInput 
(DefaultProjectInputCalculator.java:89)
    at org.apache.maven.buildcache.CacheControllerImpl.findCachedBuild 
(CacheControllerImpl.java:180)
    at org.apache.maven.buildcache.BuildCacheMojosExecutionStrategy.execute 
(BuildCacheMojosExecutionStrategy.java:128)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute 
(MojoExecutor.java:159)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject 
(LifecycleModuleBuilder.java:105)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject 
(LifecycleModuleBuilder.java:73)
    at 
org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build
 (SingleThreadedBuilder.java:53)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute 
(LifecycleStarter.java:118)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke 
(NativeMethodAccessorImpl.java:77)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke 
(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:568)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced 
(Launcher.java:283)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch 
(Launcher.java:226)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode 
(Launcher.java:407)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main 
(Launcher.java:348)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke 
(NativeMethodAccessorImpl.java:77)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke 
(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:568)
    at org.apache.maven.wrapper.BootstrapMainStarter.start 
(BootstrapMainStarter.java:53)
    at org.apache.maven.wrapper.WrapperExecutor.execute 
(WrapperExecutor.java:152)
    at org.apache.maven.wrapper.MavenWrapperMain.main (MavenWrapperMain.java:76)
Caused by: java.nio.file.InvalidPathException: Illegal char <*> at index 17: 
src\main\javagen\**
    at sun.nio.fs.WindowsPathParser.normalize (WindowsPathParser.java:182)
    at sun.nio.fs.WindowsPathParser.parse (WindowsPathParser.java:153)
    at sun.nio.fs.WindowsPathParser.parse (WindowsPathParser.java:77)
    at sun.nio.fs.WindowsPath.parse (WindowsPath.java:92)
    at sun.nio.fs.WindowsFileSystem.getPath (WindowsFileSystem.java:232)
    at java.nio.file.Path.of (Path.java:147)
    at java.nio.file.Paths.get (Paths.java:69)
    at org.apache.maven.buildcache.checksum.exclude.Exclusion.<init> 
(Exclusion.java:70)
    at 
org.apache.maven.buildcache.checksum.exclude.ExclusionResolver.addExclusion 
(ExclusionResolver.java:104)
    at org.apache.maven.buildcache.checksum.exclude.ExclusionResolver.<init> 
(ExclusionResolver.java:73)
    at org.apache.maven.buildcache.checksum.MavenProjectInput.<init> 
(MavenProjectInput.java:169)
    at 
org.apache.maven.buildcache.DefaultProjectInputCalculator.calculateInputInternal
 (DefaultProjectInputCalculator.java:103)
    at org.apache.maven.buildcache.DefaultProjectInputCalculator.calculateInput 
(DefaultProjectInputCalculator.java:89)
    at org.apache.maven.buildcache.CacheControllerImpl.findCachedBuild 
(CacheControllerImpl.java:180)
    at org.apache.maven.buildcache.BuildCacheMojosExecutionStrategy.execute 
(BuildCacheMojosExecutionStrategy.java:128)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute 
(MojoExecutor.java:159)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject 
(LifecycleModuleBuilder.java:105)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject 
(LifecycleModuleBuilder.java:73)
    at 
org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build
 (SingleThreadedBuilder.java:53)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute 
(LifecycleStarter.java:118)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke 
(NativeMethodAccessorImpl.java:77)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke 
(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:568)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced 
(Launcher.java:283)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch 
(Launcher.java:226)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode 
(Launcher.java:407)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main 
(Launcher.java:348)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke 
(NativeMethodAccessorImpl.java:77)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke 
(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:568)
    at org.apache.maven.wrapper.BootstrapMainStarter.start 
(BootstrapMainStarter.java:53)
    at org.apache.maven.wrapper.WrapperExecutor.execute 
(WrapperExecutor.java:152)
    at org.apache.maven.wrapper.MavenWrapperMain.main (MavenWrapperMain.java:76)
[ERROR]
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
 {code}
h1. My Configuration
{code:java}
<?xml version="1.0" encoding="UTF-8" ?>
<!---
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
 The ASF licenses this file to You under the Apache License, Version 2.0
 (the "License"); you may not use this file except in compliance with
 the License.  You may obtain a copy of the License at      
http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or 
agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
-->
<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 
https://maven.apache.org/xsd/build-cache-config-1.0.0.xsd";>    <!--
        Template for file comes from 
https://maven.apache.org/extensions/maven-build-cache-extension/build-cache-config.html
     -->    <configuration>
        <enabled>true</enabled>
        <hashAlgorithm>SHA-256</hashAlgorithm>
        <validateXml>true</validateXml>
        <remote enabled="false">
            <url>http://host:port</url>
        </remote>
        <local>
            <maxBuildsCached>3</maxBuildsCached>
        </local>
        <projectVersioning adjustMetaInf="true"/>
    </configuration>    <input>
        <global>
            <!-- If not defined, default glob is "*" -->
            <glob>
                
{*.java,*.groovy,*.yaml,*.svcd,*.proto,*assembly.xml,assembly*.xml,*logback.xml,*.vm,*.ini,*.jks,*.properties,*.sh,*.bat}
            </glob>
            <includes>
                <!-- By default, project sources and resources directories are 
included (src/main/java and src/main/resources) -->
                <!-- In this example, the goal is to include a wider range of 
src directories (like src/main/assembly or src/main/groovy) -->
                <include>src/</include>
            </includes>
            <excludes>
                <!-- We don't want a static "hash" pom resolution (it would 
conflict the will to adjust the version in the manifest), -->
                <!-- we exclude this specific file (as it is already by default 
since it is not in an include folder -->
                <!-- The need to rebuild a project based on the pom is already 
computed with some intelligence by the extension. -->
                <exclude>pom.xml</exclude>
                <!-- Also excluding everything located in this project specific 
folder -->
                <exclude>src/main/javagen/**</exclude>
            </excludes>
        </global>
        <plugins>
            <plugin artifactId="codegen">
                <effectivePom>
                    <excludeProperties>
                        <excludeProperty>111</excludeProperty>
                    </excludeProperties>
                </effectivePom>
                <dirScan mode="auto">
                    <excludes>
                        <exclude tagName="outputDirectory"/>
                        <exclude tagName="directory"/>
                    </excludes>
                    <tagScanConfigs>
                        <tagScanConfig tagName="someProperty" glob="*.java" 
recursive="false"/>
                    </tagScanConfigs>
                </dirScan>
                <executions>
                    <execution>
                        <execIds>
                            <execId>1</execId>
                            <execId>2</execId>
                        </execIds>
                        <dirScan mode="auto">
                            <includes>
                                <include tagName="protolocation" 
recursive="false" glob="*.proto"/>
                            </includes>
                        </dirScan>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </input>
    <executionControl>
        <runAlways>
            <plugins>
                <plugin artifactId="maven-failsafe-plugin"/>
            </plugins>
            <executions>
                <execution artifactId="maven-deploy-plugin">
                    <execIds>
                        <execId>my-execution-id</execId>
                    </execIds>
                </execution>
            </executions>
            <goalsLists>
                <goalsList artifactId="maven-install-plugin">
                    <goals>
                        <goal>install</goal>
                    </goals>
                </goalsList>
                <goalsList artifactId="maven-deploy-plugin">
                    <goals>
                        <goal>deploy</goal>
                    </goals>
                </goalsList>
                <goalsList artifactId="bb-sdk-codegen">
                    <goals>
                        <goal>deploy-local</goal>
                    </goals>
                </goalsList>
            </goalsLists>
        </runAlways>
        <reconcile logAllProperties="true">
            <plugins>
                <plugin artifactId="maven-compiler-plugin" goal="compile">
                    <reconciles>
                        <reconcile propertyName="source"/>
                        <reconcile propertyName="target"/>
                        <reconcile propertyName="debug"/>
                        <reconcile propertyName="debuglevel"/>
                    </reconciles>
                    <!-- whitelist of logged properties-->
                    <logs>
                        <log propertyName="includes"/>
                        <log propertyName="excludes"/>
                        <log propertyName="argLine"/>
                    </logs>
                </plugin>
                <plugin artifactId="duplicate-finder-maven-plugin" goal="check">
                    <reconciles>
                        <reconcile propertyName="skip" skipValue="true"/>
                        <reconcile propertyName="quiet" skipValue="true"/>
                    </reconciles>
                </plugin>
                <plugin artifactId="maven-enforcer-plugin" goal="enforce">
                    <reconciles>
                        <reconcile propertyName="skip" skipValue="true"/>
                    </reconciles>
                    <!-- blacklisted from logging properties-->
                    <nologs>
                        <nolog propertyName="redundantProperty"/>
                        <nolog propertyName="redundantProperty2"/>
                    </nologs>
                </plugin>
                <plugin artifactId="maven-surefire-plugin" goal="test">
                    <reconciles>
                        <reconcile propertyName="skip" skipValue="true"/>
                        <reconcile propertyName="skipExec" skipValue="true"/>
                        <reconcile propertyName="skipTests" skipValue="true"/>
                        <reconcile propertyName="testFailureIgnore" 
skipValue="true"/>
                    </reconciles>
                </plugin>
            </plugins>
        </reconcile>
    </executionControl>
</cache> {code}


> mvn build cache extension config parsing issues on windows
> ----------------------------------------------------------
>
>                 Key: MBUILDCACHE-102
>                 URL: https://issues.apache.org/jira/browse/MBUILDCACHE-102
>             Project: Maven Build Cache Extension
>          Issue Type: Bug
>         Environment: OS Name:                   Microsoft Windows 11 
> Enterprise
> OS Version:                10.0.22631 N/A Build 22631
> OS Manufacturer:           Microsoft Corporation
> OS Configuration:          Standalone Workstation
> OS Build Type:             Multiprocessor Free
>            Reporter: Scott Feldstein
>            Priority: Major
>
> Hello,
> My colleague is having issues on his windows development laptop building with 
> the maven build-cache extension enabled.  The issue appears to be associated 
> with the configuration file when parsing {{**}} in an ant path expression 
> element (stack below).  The configuration file is based on the [config 
> example|https://maven.apache.org/extensions/maven-build-cache-extension/maven-build-cache-config.xml]
>  in the [getting started 
> guide|https://maven.apache.org/extensions/maven-build-cache-extension/getting-started.html]
>  (see below for my exact configuration).  When we remove 
> {{src/main/javagen/**}} from the config then everything works fine.
> h1. Stacktrace
> {code:java}
> [INFO] BUILD FAILURE
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] Total time:  1.159 s
> [INFO] Finished at: 2024-08-15T10:04:09-07:00
> [INFO] 
> ------------------------------------------------------------------------
> [ERROR] Failed to calculate checksums for cs-parent: Illegal char <*> at 
> index 17: src\main\javagen\**
> java.lang.RuntimeException: Failed to calculate checksums for cs-parent
>     at 
> org.apache.maven.buildcache.DefaultProjectInputCalculator.calculateInputInternal
>  (DefaultProjectInputCalculator.java:114)
>     at 
> org.apache.maven.buildcache.DefaultProjectInputCalculator.calculateInput 
> (DefaultProjectInputCalculator.java:89)
>     at org.apache.maven.buildcache.CacheControllerImpl.findCachedBuild 
> (CacheControllerImpl.java:180)
>     at org.apache.maven.buildcache.BuildCacheMojosExecutionStrategy.execute 
> (BuildCacheMojosExecutionStrategy.java:128)
>     at org.apache.maven.lifecycle.internal.MojoExecutor.execute 
> (MojoExecutor.java:159)
>     at 
> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject 
> (LifecycleModuleBuilder.java:105)
>     at 
> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject 
> (LifecycleModuleBuilder.java:73)
>     at 
> org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build
>  (SingleThreadedBuilder.java:53)
>     at org.apache.maven.lifecycle.internal.LifecycleStarter.execute 
> (LifecycleStarter.java:118)
>     at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
>     at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
>     at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
>     at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906)
>     at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)
>     at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)
>     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
>     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke 
> (NativeMethodAccessorImpl.java:77)
>     at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke 
> (DelegatingMethodAccessorImpl.java:43)
>     at java.lang.reflect.Method.invoke (Method.java:568)
>     at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced 
> (Launcher.java:283)
>     at org.codehaus.plexus.classworlds.launcher.Launcher.launch 
> (Launcher.java:226)
>     at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode 
> (Launcher.java:407)
>     at org.codehaus.plexus.classworlds.launcher.Launcher.main 
> (Launcher.java:348)
>     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
>     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke 
> (NativeMethodAccessorImpl.java:77)
>     at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke 
> (DelegatingMethodAccessorImpl.java:43)
>     at java.lang.reflect.Method.invoke (Method.java:568)
>     at org.apache.maven.wrapper.BootstrapMainStarter.start 
> (BootstrapMainStarter.java:53)
>     at org.apache.maven.wrapper.WrapperExecutor.execute 
> (WrapperExecutor.java:152)
>     at org.apache.maven.wrapper.MavenWrapperMain.main 
> (MavenWrapperMain.java:76)
> Caused by: java.nio.file.InvalidPathException: Illegal char <*> at index 17: 
> src\main\javagen\**
>     at sun.nio.fs.WindowsPathParser.normalize (WindowsPathParser.java:182)
>     at sun.nio.fs.WindowsPathParser.parse (WindowsPathParser.java:153)
>     at sun.nio.fs.WindowsPathParser.parse (WindowsPathParser.java:77)
>     at sun.nio.fs.WindowsPath.parse (WindowsPath.java:92)
>     at sun.nio.fs.WindowsFileSystem.getPath (WindowsFileSystem.java:232)
>     at java.nio.file.Path.of (Path.java:147)
>     at java.nio.file.Paths.get (Paths.java:69)
>     at org.apache.maven.buildcache.checksum.exclude.Exclusion.<init> 
> (Exclusion.java:70)
>     at 
> org.apache.maven.buildcache.checksum.exclude.ExclusionResolver.addExclusion 
> (ExclusionResolver.java:104)
>     at org.apache.maven.buildcache.checksum.exclude.ExclusionResolver.<init> 
> (ExclusionResolver.java:73)
>     at org.apache.maven.buildcache.checksum.MavenProjectInput.<init> 
> (MavenProjectInput.java:169)
>     at 
> org.apache.maven.buildcache.DefaultProjectInputCalculator.calculateInputInternal
>  (DefaultProjectInputCalculator.java:103)
>     at 
> org.apache.maven.buildcache.DefaultProjectInputCalculator.calculateInput 
> (DefaultProjectInputCalculator.java:89)
>     at org.apache.maven.buildcache.CacheControllerImpl.findCachedBuild 
> (CacheControllerImpl.java:180)
>     at org.apache.maven.buildcache.BuildCacheMojosExecutionStrategy.execute 
> (BuildCacheMojosExecutionStrategy.java:128)
>     at org.apache.maven.lifecycle.internal.MojoExecutor.execute 
> (MojoExecutor.java:159)
>     at 
> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject 
> (LifecycleModuleBuilder.java:105)
>     at 
> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject 
> (LifecycleModuleBuilder.java:73)
>     at 
> org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build
>  (SingleThreadedBuilder.java:53)
>     at org.apache.maven.lifecycle.internal.LifecycleStarter.execute 
> (LifecycleStarter.java:118)
>     at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
>     at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
>     at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
>     at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906)
>     at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)
>     at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)
>     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
>     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke 
> (NativeMethodAccessorImpl.java:77)
>     at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke 
> (DelegatingMethodAccessorImpl.java:43)
>     at java.lang.reflect.Method.invoke (Method.java:568)
>     at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced 
> (Launcher.java:283)
>     at org.codehaus.plexus.classworlds.launcher.Launcher.launch 
> (Launcher.java:226)
>     at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode 
> (Launcher.java:407)
>     at org.codehaus.plexus.classworlds.launcher.Launcher.main 
> (Launcher.java:348)
>     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
>     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke 
> (NativeMethodAccessorImpl.java:77)
>     at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke 
> (DelegatingMethodAccessorImpl.java:43)
>     at java.lang.reflect.Method.invoke (Method.java:568)
>     at org.apache.maven.wrapper.BootstrapMainStarter.start 
> (BootstrapMainStarter.java:53)
>     at org.apache.maven.wrapper.WrapperExecutor.execute 
> (WrapperExecutor.java:152)
>     at org.apache.maven.wrapper.MavenWrapperMain.main 
> (MavenWrapperMain.java:76)
> [ERROR]
> [ERROR] Re-run Maven using the -X switch to enable full debug logging.
>  {code}
> h1. My Configuration
> {code:java}
> <?xml version="1.0" encoding="UTF-8" ?>
> <!---
>  Licensed to the Apache Software Foundation (ASF) under one or more
>  contributor license agreements.  See the NOTICE file distributed with
>  this work for additional information regarding copyright ownership.
>  The ASF licenses this file to You under the Apache License, Version 2.0
>  (the "License"); you may not use this file except in compliance with
>  the License.  You may obtain a copy of the License at      
> http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law 
> or agreed to in writing, software
>  distributed under the License is distributed on an "AS IS" BASIS,
>  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>  See the License for the specific language governing permissions and
>  limitations under the License.
> -->
> <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 
> https://maven.apache.org/xsd/build-cache-config-1.0.0.xsd";>    <!--
>         Template for file comes from 
> https://maven.apache.org/extensions/maven-build-cache-extension/build-cache-config.html
>      -->    <configuration>
>         <enabled>true</enabled>
>         <hashAlgorithm>SHA-256</hashAlgorithm>
>         <validateXml>true</validateXml>
>         <remote enabled="false">
>             <url>http://host:port</url>
>         </remote>
>         <local>
>             <maxBuildsCached>3</maxBuildsCached>
>         </local>
>         <projectVersioning adjustMetaInf="true"/>
>     </configuration>    <input>
>         <global>
>             <!-- If not defined, default glob is "*" -->
>             <glob>
>                 
> {*.java,*.groovy,*.yaml,*.svcd,*.proto,*assembly.xml,assembly*.xml,*logback.xml,*.vm,*.ini,*.jks,*.properties,*.sh,*.bat}
>             </glob>
>             <includes>
>                 <!-- By default, project sources and resources directories 
> are included (src/main/java and src/main/resources) -->
>                 <!-- In this example, the goal is to include a wider range of 
> src directories (like src/main/assembly or src/main/groovy) -->
>                 <include>src/</include>
>             </includes>
>             <excludes>
>                 <!-- We don't want a static "hash" pom resolution (it would 
> conflict the will to adjust the version in the manifest), -->
>                 <!-- we exclude this specific file (as it is already by 
> default since it is not in an include folder -->
>                 <!-- The need to rebuild a project based on the pom is 
> already computed with some intelligence by the extension. -->
>                 <exclude>pom.xml</exclude>
>                 <!-- Also excluding everything located in this project 
> specific folder -->
>                 <exclude>src/main/javagen/**</exclude>
>             </excludes>
>         </global>
>         <plugins>
>             <plugin artifactId="codegen">
>                 <effectivePom>
>                     <excludeProperties>
>                         <excludeProperty>111</excludeProperty>
>                     </excludeProperties>
>                 </effectivePom>
>                 <dirScan mode="auto">
>                     <excludes>
>                         <exclude tagName="outputDirectory"/>
>                         <exclude tagName="directory"/>
>                     </excludes>
>                     <tagScanConfigs>
>                         <tagScanConfig tagName="someProperty" glob="*.java" 
> recursive="false"/>
>                     </tagScanConfigs>
>                 </dirScan>
>                 <executions>
>                     <execution>
>                         <execIds>
>                             <execId>1</execId>
>                             <execId>2</execId>
>                         </execIds>
>                         <dirScan mode="auto">
>                             <includes>
>                                 <include tagName="protolocation" 
> recursive="false" glob="*.proto"/>
>                             </includes>
>                         </dirScan>
>                     </execution>
>                 </executions>
>             </plugin>
>         </plugins>
>     </input>
>     <executionControl>
>         <runAlways>
>             <plugins>
>                 <plugin artifactId="maven-failsafe-plugin"/>
>             </plugins>
>             <executions>
>                 <execution artifactId="maven-deploy-plugin">
>                     <execIds>
>                         <execId>my-execution-id</execId>
>                     </execIds>
>                 </execution>
>             </executions>
>             <goalsLists>
>                 <goalsList artifactId="maven-install-plugin">
>                     <goals>
>                         <goal>install</goal>
>                     </goals>
>                 </goalsList>
>                 <goalsList artifactId="maven-deploy-plugin">
>                     <goals>
>                         <goal>deploy</goal>
>                     </goals>
>                 </goalsList>
>                 <goalsList artifactId="bb-sdk-codegen">
>                     <goals>
>                         <goal>deploy-local</goal>
>                     </goals>
>                 </goalsList>
>             </goalsLists>
>         </runAlways>
>         <reconcile logAllProperties="true">
>             <plugins>
>                 <plugin artifactId="maven-compiler-plugin" goal="compile">
>                     <reconciles>
>                         <reconcile propertyName="source"/>
>                         <reconcile propertyName="target"/>
>                         <reconcile propertyName="debug"/>
>                         <reconcile propertyName="debuglevel"/>
>                     </reconciles>
>                     <!-- whitelist of logged properties-->
>                     <logs>
>                         <log propertyName="includes"/>
>                         <log propertyName="excludes"/>
>                         <log propertyName="argLine"/>
>                     </logs>
>                 </plugin>
>                 <plugin artifactId="duplicate-finder-maven-plugin" 
> goal="check">
>                     <reconciles>
>                         <reconcile propertyName="skip" skipValue="true"/>
>                         <reconcile propertyName="quiet" skipValue="true"/>
>                     </reconciles>
>                 </plugin>
>                 <plugin artifactId="maven-enforcer-plugin" goal="enforce">
>                     <reconciles>
>                         <reconcile propertyName="skip" skipValue="true"/>
>                     </reconciles>
>                     <!-- blacklisted from logging properties-->
>                     <nologs>
>                         <nolog propertyName="redundantProperty"/>
>                         <nolog propertyName="redundantProperty2"/>
>                     </nologs>
>                 </plugin>
>                 <plugin artifactId="maven-surefire-plugin" goal="test">
>                     <reconciles>
>                         <reconcile propertyName="skip" skipValue="true"/>
>                         <reconcile propertyName="skipExec" skipValue="true"/>
>                         <reconcile propertyName="skipTests" skipValue="true"/>
>                         <reconcile propertyName="testFailureIgnore" 
> skipValue="true"/>
>                     </reconciles>
>                 </plugin>
>             </plugins>
>         </reconcile>
>     </executionControl>
> </cache> {code}



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

Reply via email to