diffplug / diffplug/spotless

[question] Is there a way to skip licenseHeader for legacy files while keeping other formatters active?

Ouverte
#2,908 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
Langage dominant
Java
Étoiles
5.6k
Forks
559
Merge moyen
1 j 14 h
PR mergées (30 j)
43

Description

**Environment:**

- Java
- Spotless Maven Plugin

**Background**
Our project contains both new and legacy Java files:

- **New files** contain only the new license header:
```java
// New License Header
```
- **Legacy files** contain multiple historical license headers, for example:
```java
// New License Header

// Old License Header
```

**Problem**
When configuring Spotless with:

```xml

${project.basedir}/tools/spotless/license-header.txt
package |import |module

```

Spotless replaces **all** license headers in **all files**, including legacy files that should keep their original headers.

This causes two issues:

1. Legacy files lose their historical license information
2. If I exclude legacy files from `licenseHeader`, then other formatters (`googleJavaFormat`, `eclipse`, `prettier`, `idea`, `tableTestFormatter`, `importOrder`) will also stop applying to them

**Expected Behavior**
- New files should receive the new license header
- Legacy files should **keep their existing headers**, but still be formatted by other Spotless steps

**Question**
Is there a recommended way to configure Spotless so that:

- `licenseHeader` applies **only to new files**
- Other formatters still apply to **all files**
- Legacy files are not modified by the license step

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Commencez par examiner la configuration Maven Spotless et le délimiteur de licenseHeader présentés dans l’issue, puis vérifiez comment les étapes de formatage listées sont appliquées aux fichiers Java. Déterminez si licenseHeader peut être limité aux nouveaux fichiers sans exclure les autres étapes ; la tâche est considérée comme terminée lorsque les nouveaux fichiers reçoivent le header, que les headers existants restent inchangés et que tous les autres formateurs continuent de s’exécuter.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
java
Domaine
build-system, tooling
Type d'issue
Fonctionnalité
Difficulté
4/5
Temps estimé
3-5 jours
Activité
Calme
Clarté
Plutôt claire
Accessibilité débutants
45/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.