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