2008-10-15 693 views
17

Estoy a punto de lanzar un conjunto de plug-ins de Eclipse como código abierto y noté que la mayoría del código fuente publicado bajo LGPL/EPL contiene un encabezado cada archivo que hace referencia a la licencia o contiene la licencia misma.Cómo administrar banners de licencia en archivos fuente de proyectos de plug-in de Eclipse

Dado que agregar estas pancartas a cada archivo de forma manual parece ser una tarea abrumadora y propensa a errores. ¿Cómo puedo automatizar la inserción de estos banners?

+0

Probablemente debería cambiar el título de la pregunta ya que es engañosa: la pregunta se aplica a * any * código administrado usando Eclipse (no solo proyectos de Eclipse). ¡Entonces haré +1 a la pregunta porque es buena! (Pensé que era un poco presuntuoso 'forzar' esto directamente como una edición.) ¿O me he perdido algo? –

+0

... y etiquetarlo con eclipse y licencia –

Respuesta

6

En cuanto a las mejores prácticas, creo que debe tener su licencia de texto en un archivo separado y tener una herramienta de compilación (es decir, hormiga) para agregarla al comienzo de todos los demás archivos. Ya que está hablando de un proyecto de código abierto, necesitaría un proceso de compilación de todos modos para pensar como generar los javadocs, publicar lanzamientos, etc.

Por cierto, las tareas son simples clases de Java, por lo que debería ser fácil escribir una si no encuentre un plugin ant que haga exactamente eso.

Llegando a eclipsar, que yo sepa, no puede hacer algo como esto. La manera más rápida que se me ocurre es con bash (si está usando Linux). Suponga que el archivo msg contiene el texto que desea agregar al comienzo de cada archivo.

  1. Crear un nuevo directorio para almacenar los archivos:

    mkdir ~/outdir

  2. Añadir msg al comienzo de cada archivo y poner el resultado en el outdir

    de i en ls "*.java"; do cat msg $ i> ~/outdir/$ i; hecho

Del mismo modo se puede escribir un comando que hace lo mismo de forma recursiva, con un paso adicional para crear el strucutre directorio:

mkdir ~/outdir 
for i in `find -type d | sed 's/\.//' | grep -v "^$"`; do mkdir ~/outdir$i; done 
for i in `find -name "*.java"`; do cat msg $i > ~/outdir/$i ; done 
+0

Gracias por esbozar su solución al problema. Desafortunadamente, poner esto en el paso de compilación no afectaría el código en SVN. – fhe

+0

@fhe Pero aún podría ejecutar esto como una transformación única de su fuente y luego revisar todo esto nuevamente.(Sospecho que lo sabes :-), pero para ser claro, esta sigue siendo una solución potencial. –

2

Un enfoque más Eclipse-como que la adición manual es el siguiente , hecho a través de GUI en Eclipse. Tenga en cuenta que estos son los menús de Linux/Windows; Mac es un poco diferente.

  1. abierto Windows->Preferences
  2. Vaya a Java->Code Style->Code Templates
  3. Editar la plantilla Comments->Files comentario para incluir su texto modelo.
    hay variables para el año en curso, nombre de archivo, etc ...

Tenga en cuenta, también, que esta es una solución para sólo los archivos nuevos; no lo ayudará con archivos viejos; para eso, usaría algo como la solución de Idrosid para su código existente

+0

Gracias, pero como dijiste, esto solo afecta a los archivos nuevos. Además, cambiar los banners existentes no es posible con las plantillas de código de Eclipse. – fhe

+0

Lo sé. De alguna manera me estimuló a mirar las capacidades de Eclipse en el tema, y ​​es un poco escaso. Parece algo adecuado para un complemento, en realidad. Tal vez cuando tengo algo de tiempo ... –

+0

Realmente he editado mi pregunta e incluido un enlace a un complemento que parece muy prometedor. – fhe

Cuestiones relacionadas