Как мне обеспечить, чтобы уведомления об авторских правах сопровождали все мои исходные файлы для сборки java-maven?

StackOverflow https://stackoverflow.com/questions/1821742

Вопрос

Есть ли стандартный способ, которым люди принудительно включают уведомления об авторских правах в свои сборки java / maven? Я понимаю, что в этом нет необходимости, так как сам продукт написан с использованием копий, и если у кого-то есть мой источник, у меня гораздо большие проблемы, но меня просят проверить, и мне было интересно, обрабатывает ли это контрольный стиль, PMD или что-то еще автоматически .

Существует ли инструмент для проверки авторских прав?

Это было полезно?

Решение

Да , 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, но это уже другая история). Адаптируйте его под свои нужды.

scroll top