Inserire una licenza nei vostri progetti con Netbeans

Oggi stavo programmando con Netbeans per esercitarmi con le pagine Jsp e ho scoperto che dalla versione 6.0 è data la possibilità di inserire in automatico la licenza nei file.

Il tutto è possible grazie ai template che tramite parametri costruiscono per voi il layout della classe; ad esempio quando create una nuova classe vi viene chiesto il suo nome e il package a cui appartiene, nome e package sono passati al template per costruire la nuova classe appena creata.

Se andate nel menu Tools -> Templates -> Java -> Java class e cliccate su Open in Editor avete:


<#assign licenseFirst = "/*">
<#assign licensePrefix = " * ">
<#assign licenseLast = " */">
<#include "../Licenses/license-${project.license}.txt">


<#if package?? && package != "">
package ${package};
</#if>
/**
*
* @author ${user}
*/
public class ${name} {
}

Come vedete la prima parte è dedicata alla licenza mentre la seconda per dichiarare il package e la classe. Per quanto riguarda la licenza viene specificato che la prima riga sarà indicata da /* (utilizzando il parametro licenseFirst), ogni riga verrà preceduta da * (parametro licensePrefix) e l’ultima parte deve finire con */ (parametro licenseLast), il tutto per diventare un commento nel codice Java.

Come vedete c’è anche il parametro project.license che dovete settare. Supponiamo ora che vogliamo aggiungere la licenza EUPL andiamo nella finestra dei Files e nella cartella nbproject trovate il file project.properties, alla fine del file aggiungete il parametro:

project.license=EUPL

Andiamo a reperire la nota EUPL nel sito:

http://www.osor.eu/eupl/how-to-use-the-eupl

dove c’è il link al PDF Guideline for users and developers EUPL Guideline

a pagina 17 (Eupl 1.1) trovate la nota di testo, che dovete copiarvi in un editor di testo e trasformare ad esempio nel seguente modo:


<#if licenseFirst??>
${licenseFirst}
</#if>
${licensePrefix}Copyright ${date?date?string("yyyy")} {organization}
${licensePrefix}
${licensePrefix}Licensed under the EUPL, Version 1.1 or – as soon they
${licensePrefix}will be approved by the European Commission - subsequent
${licensePrefix}versions of the EUPL (the "Licence");
${licensePrefix}You may not use this work except in compliance with the
${licensePrefix}Licence.
${licensePrefix}You may obtain a copy of the Licence at:
${licensePrefix}
${licensePrefix}http://www.osor.eu/eupl/european-union-public-licence-eupl-v.1.1
${licensePrefix}
${licensePrefix}Unless required by applicable law or agreed to in
${licensePrefix}writing, software distributed under the Licence is
${licensePrefix}distributed on an "AS IS" basis,
${licensePrefix}WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
${licensePrefix}express or implied.
${licensePrefix}See the Licence for the specific language governing
${licensePrefix}permissions and limitations under the Licence.
<#if licenseLast??>
${licenseLast}
</#if>

e salvate il file con il nome license-EUPL.txt

Nota: la variabile date è una delle variabili predefinite per i template, vedere qui.

Ora andate in Tools -> Licenses e fate click sul pulsate Add per selezionare il file, vedrete che ora vi compare tra le licenze a disposizione.

Nota: il file viene poi salvato nella cartella utente di sistema, nel mio caso (sotto mac)

/Users/emidiostani/.netbeans/6.1/config/Templates/Licenses

Come però avete notato, il file contiene anche la variabile organization; questa variabile l’ho definita in Tools->Templates ->User Configuration Properties -> User.properties, scrivendo ad esempio:

organization=Unisys

e semplicemente salvate il file.

Il file corrispondente lo trovate in:

/Users/emidiostani/.netbeans/6.1/config/Templates/Properties/User.properties

Ora non dovete fare altro che creare una classe Java come avete sempre fatto e vedete che la nota viene aggiunta in cima al file.

Riferimenti:

http://blogs.sun.com/geertjan/date/20071126

Advertisements