License Plugin


O license plugin permite que atualizemos nos fontes do projeto a cabeçalho com a mensagem de licença, vamos abaixo ver como é simples a sua utilização em um projeto maven.

1 - Configurando

 <build>
   <plugins>
     <plugin>
       <groupId>com.mycila.maven-license-plugin</groupId>
       <artifactId>maven-license-plugin</artifactId>
       <version>1.9.0</version>
       <configuration>
         <header>src/etc/license.txt</header>
         <mapping>
           <tmpl>XML_STYLE</tmpl>
         </mapping>
         <strictCheck>true</strictCheck>
         <includes>
           <include>src/**</include>
         </includes>
         <excludes>
           <exclude>src/main/webapp/js/libs/**</exclude>
           <exclude>src/main/webapp/css/jquery.mobile-1.0.min.css</exclude>
           <exclude>src/test/qunit/qunit/**</exclude>
           <exclude>src/main/webapp/tmpl/**</exclude>
           <exclude>src/main/webapp/WEB-INF/wro.properties</exclude>
         </excludes>
       </configuration>
     </plugin>
   </plugins>
 </build>

2 - Criar um Header File

Para utilizar esse plugin você precisa criar um arquivo que contenha o header, licença ou qualquer outro texto que queira que seja exibido nos arquivos fontes do projeto.

Abaixo um exemplo de licença que será exibido nos arquivos do projeto:

Copyright (C) ${year} ${user.name} <${email}>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and 
limitations under the License.
      

Criar um arquivo com o nome de license.txt e adicionar no caminho, conforme a tag: header.

<header>src/etc/license.txt</header>

3 - Verificando se existe o header nos arquivos do projeto

Com o plugin configurado no pom do projeto, executar:

mvn license:check -Dyear=2013 -Demail=javadev@javadev.com.br

Caso houver algum arquivo sem o header ocorrerá uma falha no build, caso contrário será exibido uma mensagem de sucesso:

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.811s
[INFO] Finished at: Tue Mar 12 18:15:18 BRT 2013
[INFO] Final Memory: 3M/15M

4 - Adicionando o Header nos arquivos do projeto (goal: format)

Executar o comando:

mvn license:format -Dyear=2013 -Demail=javadev@javadev.com .br

Para que o comando acima funcione, o projeto precisa da seguinte configuração:

 <build>
   <plugins>
     <plugin>
       <groupId>com.mycila.maven-license-plugin</groupId>
       <artifactId>maven-license-plugin</artifactId>
       <configuration>
         <header>src/etc/license.txt</header>
       </configuration>
     </plugin>
   </plugins>
 </build>

Assim que o comando for executado todos os fontes do projeto terão os cabeçalhos alterados.


Repositório

http://repo1.maven.org/maven2/com/mycila/maven-license-plugin.

Download

http://www.javadev.com.br/downloads/plugins/license.rar.

Referência

O texto utilizando para o exemplo de como atualizar os headers dos fontes foi extraido da Apache Software Fundation.