Closed AB-xdev closed 2 months ago
I have a similar problem with 4.4. Seems the header can no longer be read from the classpath as FileUtils
is trying to resolve it from the local file system. In my project the header is provided via a dependency.
@hazendaz : do you remember a change in this area of the code ? I don't...
Similar case at scordio/spring-batch-notion#45.
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal com.mycila:license-maven-plugin:4.4:check (default) on project spring-batch-notion: Execution default of goal com.mycila:license-maven-plugin:4.4:check failed: Cannot read header document com/mycila/maven/plugin/license/templates/APACHE-2.txt. Cause: null
where a built-in license set is used:
<plugin>
<groupId>com.mycila</groupId>
<artifactId>license-maven-plugin</artifactId>
<version>4.3</version>
<configuration>
<licenseSets>
<licenseSet>
<header>com/mycila/maven/plugin/license/templates/APACHE-2.txt</header>
<includes>
<include>src/**/*.java</include>
</includes>
</licenseSet>
</licenseSets>
...
Did a bit of debugging and I think the problem occurs in https://github.com/mathieucarbou/license-maven-plugin/blob/e3cef56c77219c1679d0cdec985bc5f16ee77f9b/license-maven-plugin/src/main/java/com/mycila/maven/plugin/license/util/FileUtils.java#L66-L70
looked like this in v4.3: https://github.com/mathieucarbou/license-maven-plugin/blob/23a6eb13d9c920c363715bde40cc733224727bbd/license-maven-plugin/src/main/java/com/mycila/maven/plugin/license/util/FileUtils.java#L63-L67
Input values are the same (expect that encoding changed)
Just FYI, assertj/assertj#3464 worked correctly, probably because we use an inline header.
Thanks for finding the issue. I'm away right now but can look later in the weekend. A pull request would also be great if needed sooner.
Sent from my Verizon, Samsung Galaxy smartphone Get Outlook for Androidhttps://aka.ms/AAb9ysg
From: Stefano Cordio @.> Sent: Wednesday, May 8, 2024 5:42:06 AM To: mathieucarbou/license-maven-plugin @.> Cc: Jeremy Landis @.>; Mention @.> Subject: Re: [mathieucarbou/license-maven-plugin] Cannot read header document com/mycila/maven/plugin/license/templates/... Cause: null: FileSystemNotFoundException (Issue #760)
Just FYI, assertj/assertj#3464https://github.com/assertj/assertj/pull/3464 worked correctly, probably because we use an inline header.
— Reply to this email directly, view it on GitHubhttps://github.com/mathieucarbou/license-maven-plugin/issues/760#issuecomment-2100182544, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AAHODI6CP5JKG2EM5PQMZ5LZBHXO5AVCNFSM6AAAAABHMJJPWWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCMBQGE4DENJUGQ. You are receiving this because you were mentioned.Message ID: @.***>
Probably related problem since upgrade to 4.4
<header>
https://raw.githubusercontent.com/argosnotary/argosnotary/main/docs/header.txt
</header>
Execution default-cli of goal com.mycila:license-maven-plugin:4.4:check failed: Cannot read header document https://raw.githubusercontent.com/argosnotary/argosnotary/main/docs/header.txt. Cause: Provider "https" not installed
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:375)
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:351)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:171)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:163)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:294)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:960)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:293)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:196)
at jdk.internal.reflect.DirectMethodHandleAccessor.invoke (DirectMethodHandleAccessor.java:104)
at java.lang.reflect.Method.invoke (Method.java:578)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
Caused by: org.apache.maven.plugin.PluginExecutionException: Execution default-cli of goal com.mycila:license-maven-plugin:4.4:check failed: Cannot read header document https://raw.githubusercontent.com/argosnotary/argosnotary/main/docs/header.txt. Cause: Provider "https" not installed
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:148)
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:370)
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:351)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:171)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:163)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:294)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:960)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:293)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:196)
at jdk.internal.reflect.DirectMethodHandleAccessor.invoke (DirectMethodHandleAccessor.java:104)
at java.lang.reflect.Method.invoke (Method.java:578)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
Caused by: java.lang.IllegalArgumentException: Cannot read header document https://raw.githubusercontent.com/argosnotary/argosnotary/main/docs/header.txt. Cause: Provider "https" not installed
at com.mycila.maven.plugin.license.header.HeaderSource.of (HeaderSource.java:237)
at com.mycila.maven.plugin.license.AbstractLicenseMojo.executeForLicenseSet (AbstractLicenseMojo.java:597)
at com.mycila.maven.plugin.license.AbstractLicenseMojo.executeForLicenseSets (AbstractLicenseMojo.java:556)
at com.mycila.maven.plugin.license.AbstractLicenseMojo.execute (AbstractLicenseMojo.java:516)
at com.mycila.maven.plugin.license.LicenseCheckMojo.execute (LicenseCheckMojo.java:101)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:370)
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:351)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:171)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:163)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:294)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:960)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:293)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:196)
at jdk.internal.reflect.DirectMethodHandleAccessor.invoke (DirectMethodHandleAccessor.java:104)
at java.lang.reflect.Method.invoke (Method.java:578)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
Caused by: java.nio.file.FileSystemNotFoundException: Provider "https" not installed
at java.nio.file.Path.of (Path.java:212)
at java.nio.file.Paths.get (Paths.java:98)
at com.mycila.maven.plugin.license.util.FileUtils.read (FileUtils.java:67)
at com.mycila.maven.plugin.license.header.HeaderSource$UrlHeaderSource.<init> (HeaderSource.java:65)
at com.mycila.maven.plugin.license.header.HeaderSource.of (HeaderSource.java:234)
at com.mycila.maven.plugin.license.AbstractLicenseMojo.executeForLicenseSet (AbstractLicenseMojo.java:597)
at com.mycila.maven.plugin.license.AbstractLicenseMojo.executeForLicenseSets (AbstractLicenseMojo.java:556)
at com.mycila.maven.plugin.license.AbstractLicenseMojo.execute (AbstractLicenseMojo.java:516)
at com.mycila.maven.plugin.license.LicenseCheckMojo.execute (LicenseCheckMojo.java:101)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:370)
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:351)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:171)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:163)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:294)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:960)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:293)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:196)
at jdk.internal.reflect.DirectMethodHandleAccessor.invoke (DirectMethodHandleAccessor.java:104)
at java.lang.reflect.Method.invoke (Method.java:578)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
@hazendaz there you go: https://github.com/mathieucarbou/license-maven-plugin/pull/762
You can't just convert URL to paths, because the URL might point to a different FileSystem implementation like a jar or zip. However URLs can simply be opened as streams, which is all that's needed here anyway. Tests pass and my project builds.
Version affected
4.4
Describe the bug
Tonight we got automated dependency updates for your plugin to version 4.4 and all updates have failed in our CI with the following (using
-X
):Tries to search for this file according to debug:![g](https://github.com/mathieucarbou/license-maven-plugin/assets/45384811/45a7554c-ab9c-4b04-8203-a65283443a63)
How to Reproduce
We are using the plugin in the following configuration: https://github.com/xdev-software/testcontainers-junit4-mock/blob/8f7d3ca51962ee84b6d3427010ac5fcb65a53ce4/testcontainers-junit4-mock/pom.xml#L137-L164
CI failure can be seen here: https://github.com/xdev-software/testcontainers-junit4-mock/actions/runs/8995214856/job/24709844596?pr=8