2012-02-10 6 views
7

Estoy un poco confundido con varias formas de poner la información de la licencia en el proyecto maven.Maven Licensing

Si pongo la licencia en la etiqueta dentro del archivo POM ¿significa eso que todo mi proyecto tiene esa licencia?

Si pongo el archivo license.txt en proyecto, ¿eso significa que el proyecto pertenece a esa licencia?

Y qué pasa si puse la licencia al comienzo de cada archivo .java que tengo. ¿Eso significa que cada clase que escribí puede tener diferentes licencias?

¿Qué pasa con la situación cuando tengo información de licencia en el encabezado del archivo POM? ¿Eso significa también que todos los archivos están bajo esa licencia?

Confundido ...

+0

Comencé a responder esto, pero luego noté que no es tan fácil como podría sonar. Yo diría que funciona como herencia, ¿pero realmente es así? ¿Y qué hay de las posibles licencias dobles? También estoy esperando a que alguien más sabio responda ... –

+4

Voté para cerrar esta pregunta como fuera de tema porque ** se trata de licencias o asuntos legales **, no de programación o desarrollo de software. [Consulte aquí] (http://meta.stackoverflow.com/a/274964/1402846) para obtener más información y [ayuda/tema] para obtener más información. –

Respuesta

2

Un proyecto puede tener diferentes licencias según las necesidades. También le gustaría tener una licencia de Apache y una licencia de MIT, BSD. La idea de permitir que su código tenga múltiples licencias es permitir que las empresas elijan la licencia con la que están satisfechos.

Estas licencias normalmente se almacenan en META-INF/LICENSE. * archivos (por ejemplo LICENSE.BSD, LICENSE.Apache, etc.).

Si define la licencia en el POM, eso significa que el plugin de Maven utilizará esa cadena cuando genere el sitio de Maven.

Lo mejor es tener el encabezado de licencia respectivo sobre cada una de sus clases para evitar una posible confusión para los adoptantes del proyecto.

Si hace lo que se conoce como "sombreado" (incluidas las clases de otras bibliotecas en su jar), lo más probable es que termine teniendo su licencia en su directorio META-INF. Tenga cuidado, ya que podría sobrescribir la licencia de su proyecto, si el nombre del archivo de licencia respectivo es simplemente LICENCIA.

Normalmente colocaría su archivo de licencia bajo el directorio src/main/resources/META-INF.

5

No se preocupe, no es el único confundido. Este problema no se limita a Java. Maven al menos proporciona un mecanismo para dividir un proyecto en módulos separados, cada uno con un archivo de metadatos (POM) que describe la licencia de los módulos.

El problema es que, como usuario del software, que desea cumplir con la licencia, ¿cómo puedo estar seguro de que todos los archivos (en el paquete de software) pertenecen todos a la misma licencia de software? Existen sutiles diferencias e implicaciones de uso entre algunas de las licencias de código abierto.

HP open obtuvo su sistema de escaneo de licencias.

http://www.fossology.org/

Esto permite a una organización para escanear el código fuente de libaries 3 ª parte y descubrir la licencia. Este análisis sigue las técnicas estándar que han surgido a lo largo del tiempo (Licencia en un README, Licencia en un encabezado de comentario, etc., etc.).Para la organización que prefieren externalizar este trabajo, hay empresas comerciales que mantienen bases de datos de software de código abierto:

hay algo de luz al final del túnel. La Fundación Linux ha comenzado una iniciativa para abordar esta cuestión:

http://spdx.org/

que es una gran idea. Cree un estándar único que permita a los desarrolladores de software declarar explícitamente la licencia de cada archivo. Un verdadero éxito del grupo es armar una lista común de nombres de licencia. El único inconveniente, según lo veo, es la falta de adopción de los desarrolladores y el soporte de herramientas.

En conclusión, recomendaría mantener todos los archivos de un módulo maven como parte de la misma licencia. Suponiendo que su módulo es de código abierto, indique esa licencia en un encabezado comentado y publique esa licencia en Maven POM. Si su código es de código cerrado, me parece que poner la licencia en el directorio de META-INF ayuda, pero no aborda completamente los problemas de cumplimiento.

+0

+1: Muy buen comentario. – carlspring

Cuestiones relacionadas