Update File Header: Configuration
Depuis la version 2.4, en l'absence de fichier descriptor, il est possible de configurer le goal update-file-header avec quatre paramètres:
Pour connaitre la liste complêtes des extensions connues lancer le goal comment-style-list.
[INFO] --- maven-license-plugin:2.4.1:comment-style-list (default-cli) @ maven-license-plugin --- [INFO] List of available comment styles: - apt : header transformer with apt comment style , extensions : [apt] - java : header transformer with java comment style , extensions : [java, groovy, css, cs, as, aj, c, h, cpp] - properties : header transformer with properties file comment style, extensions : [properties, sh, py, rb, pl, pm] - rst : header transformer with rst comment style , extensions : [rst] - xml : header transformer with xml comment style , extensions : [pom, xml, xhtml, mxlm, dtd, jspx, fml, xsl, html, htm, jaxx, kml, gsp, tml]
Par défault, tous les fichiers contenus dans src sont traités. Cela peut se changer en utilisant la propriété roots. Cette propriété est une liste de répertoires de bases au sein desquels le goal update-file-header sera appliquée.
Soit un pom avec la configuration de plugin suivante:
<plugins> <plugin> <groupId>org.nuiton</groupId> <artifactId>maven-license-plugin</artifactId> <version>2.4</version> <configuration> <verbose>false</verbose> <addSvnKeyWords>true</addSvnKeyWords> </configuration> <executions> <execution> <id>first</id> <goals> <goal>update-file-header</goal> </goals> <phase>process-sources</phase> <configuration> <licenseName>gpl_v3</licenseName> <roots> <root>src/main/java</root> <root>src/test</root> </roots> </configuration> </execution> </executions> </plugin> </plugins>
En considérant que nous avons l'arboresence suivante: src/main/java src/main/resources src/test/java src/test/resources
Seuls les fichiers inclus dans src/main/java, src/test/java et src/test/resources seront traités.
Par défault, Tous les fichiers depuis le(s) roots et avec la bonne extension sont traités. Avec le parametre de type Liste includes, il est possible de spécifier avec plus de precision quels fichiers on désire traiter.
Soit un pom avec la configuration de plugin suivante:
<plugins> <plugin> <groupId>org.nuiton</groupId> <artifactId>maven-license-plugin</artifactId> <version>2.4</version> <configuration> <verbose>false</verbose> <addSvnKeyWords>true</addSvnKeyWords> </configuration> <executions> <execution> <id>first</id> <goals> <goal>update-file-header</goal> </goals> <phase>process-sources</phase> <configuration> <licenseName>gpl_v3</licenseName> <includes> <include>*Dao.java</include> <include>*Bean.java</include> <include>.*entities.*.xml</include> </includes> </configuration> </execution> </executions> </plugin> </plugins>
Le goal update-file-header sera appliqué uniquement aux fichiers java (depuis "src") dont le nom se termine par "Dao" ou "Bean" et aux fichiers xml contenant "entities" dans leur nom.
Le parametre excludes permet d'ignorer certains fichiers lors du processus update-file-header.
Soit un pom avec la configuration de plugin suivante:
<plugins> <plugin> <groupId>org.nuiton</groupId> <artifactId>maven-license-plugin</artifactId> <version>2.4</version> <configuration> <verbose>false</verbose> <addSvnKeyWords>true</addSvnKeyWords> </configuration> <executions> <execution> <id>first</id> <goals> <goal>update-file-header</goal> </goals> <phase>process-sources</phase> <configuration> <licenseName>gpl_v3</licenseName> <excludes> <exclude>*.png</exclude> <exclude>*.txt</exclude> <exclude>*Test.java</exclude> </excludes> </configuration> </execution> </executions> </plugin> </plugins>
Les fichiers Java dont le nom se terminent par "Test", les fichiers png et txt seront ignorés.
Il est possible de spécifier des extensions supplémentaires à traiter en utilisant le paramètre de type dictionnaire extraExtension où les clef sont les extensions et les valeurs les type de commentaire à utiliser.
Soit un pom avec la configuration de plugin suivante:
<plugins> <plugin> <groupId>org.nuiton</groupId> <artifactId>maven-license-plugin</artifactId> <version>2.4</version> <configuration> <extraExtensions> <yo>java</yo> </extraExtensions> </configuration> </plugin> </plugins>
Les fichiers d'extension yo seront traités comme des fichiers d'en-tête java.