Come posso garantire che le note sul copyright accompagnino tutti i miei file sorgente per una build java-maven?

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

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?

È stato utile?

Soluzione

, 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 headerLocation per puntare su di esso (utilizza di default 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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top