Да , Checkstyle (и maven-checkstyle-plugin ) могут сделать это, он может проверить, что все исходные файлы содержат заголовок лицензии. Поместите этот заголовок в текстовый файл и используйте headerLocation
, чтобы указать на него (по умолчанию используется LICENSE.txt
).
Допустим, вы хотите использовать checkstyle.license
для уведомлений об авторских правах. Для многомодульной сборки стандартным подходом является создание выделенного модуля для размещения ресурсов Checkstyle (см. Конфигурация с несколькими модулями ):
whizbang
|-- pom.xml
|-- build-tools
| |-- src
| | `-- main
| | `-- resources
| | `-- whizbang
| | |-- checkstyle.xml
| | `-- checkstyle.license
| `-- pom.xml
|-- core
|-- gui
|-- jmx
`-- src
Затем включите конфигурацию Checkstyle в верхний уровень 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>
Эта настройка гарантирует, что заголовок авторских прав присутствует в исходных файлах (и применяет другие правила Checkstyle, но это уже другая история). Адаптируйте его под свои нужды.