-
Notifications
You must be signed in to change notification settings - Fork 485
Description
When I run the spotless maven plugin check
goal locally, it goes through fine. But in CI, specifically Jenkins, I always get errors:
[ERROR] Failed to execute goal com.diffplug.spotless:spotless-maven-plugin:2.43.0:check (default) on project ccc-reuse: The following files had format violations:
[ERROR] src/test/java/com/uuu/ccc/common/test/util/TransformTest.java
[ERROR] @@ -2,7 +2,7 @@
[ERROR] ·*·OCO·Source·Materials
[ERROR] -·*·©·Copyright·UUU·2008-2024.·All·Rights·Reserved.
[ERROR] +·*·??·Copyright·UUU·5655.·All·Rights·Reserved.
If I replace the ©
in licenseHeader.content
with ©
- it behaves the same, just that it turns the symbol into a single ?
instead of two.
I understand that this is some environment issue, but looking at it - the maven versions are the same, java versions the same. LANG
, LC_ALL
, LANGUAGE
variables are the same.
Running maven with -X
it also shows that it reads the pom like that in CI:
[DEBUG] -----------------------------------------------------------------------
[DEBUG] Goal: com.diffplug.spotless:spotless-maven-plugin:2.43.0:check (default)
[DEBUG] Style: Regular
[DEBUG] Configuration: <?xml version="1.0" encoding="UTF-8"?>
<configuration>
<applySkip default-value="false">${spotless.apply.skip}</applySkip>
<baseDir default-value="${project.basedir}"/>
<buildDir default-value="${project.build.directory}"/>
<checkSkip default-value="false">${spotless.check.skip}</checkSkip>
<encoding default-value="UTF-8">UTF-8</encoding>
<filePatterns>${spotlessFiles}</filePatterns>
<goal default-value="${mojoExecution.goal}"/>
<java>
<palantirJavaFormat/>
</java>
<licenseHeader>
<content>/*******************************************************************************
* OCO Source Materials
* ? Copyright UUU $YEAR. All Rights Reserved.
*
* The source code for this program is not published or otherwise
* divested of its trade secrets, irrespective of what has
* been deposited with the U.S. Copyright Office.
*******************************************************************************/</content>
<delimiter>(/(/|\*{1,2}[^*])|package|import|public|final|abstract|class|enum|interface)</delimiter>
</licenseHeader>
<lineEndings default-value="GIT_ATTRIBUTES_FAST_ALLSAME"/>
<project default-value="${project}"/>
<repositories default-value="${project.remotePluginRepositories}"/>
<repositorySystemSession default-value="${repositorySystemSession}"/>
<setLicenseHeaderYearsFromGitHistory>${spotlessSetLicenseHeaderYearsFromGitHistory}</setLicenseHeaderYearsFromGitHistory>
<skip default-value="false">${spotless.skip}</skip>
</configuration>
but it shows up properly when run locally. I tried adding the UTF8 BOM to the POM, but it didn't help. Otherwise it is UTF8 encoded.
Maven 3.9.9. Spotless 2.43.0.
CI is running in a Ubuntu 24.04.1 LTS docker container running on a CentOS Stream 8 host.
Does anyone have any ideas what could be the issue here?
Spotless configuration:
<plugin>
<groupId>com.diffplug.spotless</groupId>
<artifactId>spotless-maven-plugin</artifactId>
<configuration>
<java>
<palantirJavaFormat/>
</java>
<licenseHeader>
<content>
/*******************************************************************************
* OCO Source Materials
* © Copyright UUU $YEAR. All Rights Reserved.
*
* The source code for this program is not published or otherwise
* divested of its trade secrets, irrespective of what has
* been deposited with the U.S. Copyright Office.
*******************************************************************************/
</content>
<delimiter>(/(/|\*{1,2}[^*])|package|import|public|final|abstract|class|enum|interface)</delimiter>
</licenseHeader>
<encoding>UTF-8</encoding>
</configuration>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
<phase>compile</phase>
</execution>
</executions>
</plugin>
</plugins>
- summary of problem
- Gradle or Maven version
- spotless version
- operating system and version
- copy-paste your full Spotless configuration block(s), and a link to a public git repo that reproduces the problem if possible
- copy-paste the full content of any console errors emitted by
gradlew spotless[Apply/Check] --stacktrace