Desplegar artefactos no libres en un repositorio

PAUT-0178 (Pauta)

Identificar artefactos cuya licencia no permita su distribución libre y desplegarlos en un repositorio "non-free" que no sea visible desde fuera de la intranet de la Junta de Andalucía.

Existe un procedimiento para dar de alta en el repositorios artefactos necesarios para la construcción de nuevos proyectos. En dicho procedimiento se muestra el caso en el que hay que desplegar un nuevo artefacto manualmente.

En el caso de tener que desplegar un artefacto manualmente en nuestro repositorio de librerías (puede ser el de MADEJA o el de una Consejería en concreto), es importante identificar qué licencia tiene el artefacto y cual sería su destino final.

En caso que el artefacto empezara sus coordenadas maven por "es.juntadeandalucia.*" no habría nínguna duda, y el repositorio destino sería "ja-artifacts-deploy". El problema surge cuando el artefacto ha sido desarrollado por terceras partes. En tal caso los dos repositorios destinos posibles serían "ja-free-repo" o "ja-non-free-repo". Para resolver esta disyuntiva, hay que identificar la licencia del artefacto que se quiere desplegar. Si la licencia del artefacto permite su distribución, entonces el repositorio destino será "ja-free-repo". En caso que la licencia no permita su distribución, el repositorio destino será "ja-non-free-repo".

Esto se considera así ya que el repositorio de librerías MADEJA tiene dos vertientes, una de cara a la intranet de la Junta de Andalucía (donde no habría problemas para distribuir de manera interna librerías "non-free"), y otra de carácter público (donde se podría incurrir en una violación de la licencia) en Internet. El repositorio "non-free" podrá ser utilizado dentro de la intranet de la Junta de Andalucía, pero sin embargo no podrá ser utilizado desde Internet. Si alguna Consejería publica su repositorio en internet también debería de seguir esta directriz.

¿Qué ocurrirá con aquellos proyectos que se quieran construir desde fuera de la intranet que contengan dependencias ubicadas en "ja-non-free-repo"?

Dado el caso, la persona que quisiera construir el proyecto tendrá que descargarse los diferentes artefactos de las correspondientes páginas del fabricante. En su defecto, se podrá publicar en el repositorio "free-repo", un fichero pom.xml con las mismas coordenadas indicando la dirección donde se puede encontrar dicho artefacto. Por ejemplo:

<project>
    <modelVersion>4.0.0</modelVersion>
    <groupId>javax.activation</groupId>
    <artifactId>activation</artifactId>
    <version>1.0.2</version>
    <name>JavaBeans Activation Framework (JAF)</name>
    <description>
        JavaBeans Activation Framework (JAF) is a standard extension to the Java platform that lets you take advantage of standard services to: determine the type of an arbitrary piece of data; encapsulate access to it; discover the operations available on it; and instantiate the appropriate bean to perform the operation(s).
    </description>
    <url>
        http://java.sun.com/products/javabeans/jaf/index.jsp
    </url>
    <distributionManagement>
        <downloadUrl>http://java.sun.com/products/javabeans/glasgow/jaf.html</downloadUrl>
    </distributionManagement>
</project>