diffplug / diffplug/spotless

Eclipse formatters on 2.43.0 does not use correctly maven local repository

Aperta
#2,329 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub
bug
Lingua principale
Java
Stelle
5.6k
Fork
559
Merge medio
1g 13h
PR unite (30g)
34

Descrizione

The `` step is not respecting `localRepository` settings in Maven: if you have a `` different than Maven default (`%USERPROFILE%/.m2/repository` on Windows or `${HOME}/.m2/repository` on Linux), it tries to create file under the default.

As a technique to avoid having files in `.m2/repository`, I had created a file in place of a directory in `.m2/repository`:

```bash
# move actual repository
mv ~/.m2/repository ~/.m2/repository_old
# create a file
touch ~/.m2/repository
```

And then changed the Maven settings.

With this in place, you can see errors because Spotless tries to create a directory `.m2/repository/dev` which can't work because `.m2/repository` point to a file (see trace below).

I am under the impression that the problem lies here:

- the `cacheDirectory`
- the `RepositorySystemSession`

I could create a NTFS junction or a symlink, but on Windows, it is rather inconvenient as I am required to be admin.

Note: to print out the local repository, you can use `./mvnw help:evaluate -Dexpression='session.localRepository.basedir' -N`

---

Settings:

```xml

E:\some\path\local
...

```

Plugin configuration:

```xml
com.diffplug.spotless spotless-maven-plugin 2.43.0








javax,java,org,com,\#



```

Error:

```text
java.nio.file.NoSuchFileException: C:\Users\someuser\.m2\repository\dev
at sun.nio.fs.WindowsException.translateToIOException (WindowsException.java:85)
at sun.nio.fs.WindowsException.rethrowAsIOException (WindowsException.java:103)
at sun.nio.fs.WindowsException.rethrowAsIOException (WindowsException.java:108)
at sun.nio.fs.WindowsFileSystemProvider.createDirectory (WindowsFileSystemProvider.java:527)
at java.nio.file.Files.createDirectory (Files.java:699)
at java.nio.file.Files.createAndCheckIsDirectory (Files.java:807)
at java.nio.file.Files.createDirectories (Files.java:793)
at dev.equo.solstice.p2.FileMisc.lambda$mkdirs$2 (FileMisc.java:84)
at dev.equo.solstice.p2.FileMisc.retry (FileMisc.java:101)
at dev.equo.solstice.p2.FileMisc.retry (FileMisc.java:93)
at dev.equo.solstice.p2.FileMisc.mkdirs (FileMisc.java:84)
at dev.equo.solstice.p2.QueryCacheOnDisk. (QueryCacheOnDisk.java:33)
at dev.equo.solstice.p2.P2Model.query (P2Model.java:129)
at com.diffplug.spotless.extra.EquoBasedStepBuilder.get (EquoBasedStepBuilder.java:114)
at com.diffplug.spotless.FormatterStepImpl.calculateState (FormatterStepImpl.java:58)
at com.diffplug.spotless.LazyForwardingEquality.state (LazyForwardingEquality.java:56)
at com.diffplug.spotless.LazyForwardingEquality.toBytes (LazyForwardingEquality.java:85)
at com.diffplug.spotless.LazyForwardingEquality.hashCode (LazyForwardingEquality.java:102)
at java.util.ArrayList.hashCodeRange (ArrayList.java:677)
at java.util.ArrayList.hashCode (ArrayList.java:664)
at com.diffplug.spotless.Formatter.hashCode (Formatter.java:276)
at java.util.HashMap.hash (HashMap.java:338)
at java.util.HashMap.put (HashMap.java:618)
at com.diffplug.spotless.maven.FormattersHolder.create (FormattersHolder.java:43)
at com.diffplug.spotless.maven.AbstractSpotlessMojo.execute (AbstractSpotlessMojo.java:232)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:126)
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:328)
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:316)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:212)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:174)
at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:75)
at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:162)
at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)
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.DirectMethodHandleAccessor.invoke (DirectMethodHandleAccessor.java:103)
at java.lang.reflect.Method.invoke (Method.java:580)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:255)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:201)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:361)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:314)
```

Versions:

- Maven 3.9.9
- Java 21.0.5 on Windows 10 x64
- spotless-maven-plugin 2.43.0

Guida per i contributori

Apri la guida per i contributori

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.