Come posso garantire che le note sul copyright accompagnino tutti i miei file sorgente per una build java-maven?
-
10-07-2019 - |
Domanda
Esiste un modo standard in cui le persone impongono l'inclusione degli avvisi di copyright nelle loro build java / maven? Mi rendo conto che non dovrebbe essere necessario poiché il prodotto stesso è stato copiato e se qualcuno ha la mia fonte ho problemi molto più grandi, ma mi viene chiesto di controllare e mi chiedevo se lo stile di controllo, PMD o qualcos'altro gestito automaticamente .
Esiste uno strumento che gestisce il controllo del copyright?
Soluzione
Sì , Checkstyle (e la maven-checkstyle -plugin ) può farlo, può verificare che ogni file sorgente contenga un'intestazione di licenza. Inserisci quell'intestazione in un file di testo e usa il LICENSE.txt
).
Supponiamo che tu voglia utilizzare checkstyle.license
per le tue notifiche sul copyright. Per una build multi-moduli, l'approccio standard è quello di creare un modulo dedicato per ospitare le risorse Checkstyle (vedi Configurazione multimodulo ):
whizbang
|-- pom.xml
|-- build-tools
| |-- src
| | `-- main
| | `-- resources
| | `-- whizbang
| | |-- checkstyle.xml
| | `-- checkstyle.license
| `-- pom.xml
|-- core
|-- gui
|-- jmx
`-- src
Quindi, includi la Checkstyle configuration in il livello principale pom.xml
.
<pluginManagement>
<plugins>
<!-- Apply checkstyle rules and fail the build in case of errors. The
checkstyle config files are taken from the build-tools JAR module.-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<!-- Lock down plugin version for build reproducibility -->
<version>2.4</version>
<dependencies>
<dependency>
<groupId>com.example.whizbang</groupId>
<artifactId>build-tools</artifactId>
<version>1.0</version>
</dependency>
</dependencies>
<configuration>
<consoleOutput>true</consoleOutput>
<configLocation>whizbang/checkstyle.xml</configLocation>
<headerLocation>whizbang/checkstyle.license</headerLocation>
</configuration>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
...
</plugins>
</pluginManagement>
Questa configurazione assicurerà che un'intestazione del copyright sia presente nei file di origine (e applicherà altre regole di Checkstyle ma questa è un'altra storia). Adattalo alle tue esigenze.
Altri suggerimenti
Ho appena trovato http://code.google.com/p/maven-license-plugin/ sembra anche ragionevole