m2e tiene una funcionalidad que es materialize, la que facilita la descarga inicial de un proyecto, de modo que en vez de bajarlo de scm y luego ejecutar maven, lo baja de scm a través de maven. en el fondo, en vez de que te den la url de scm y estarlo configurando tú, se deduce todo del pom.xml. ésto se usa mucho, por ej., con las dependencias en caso que necesites acceso a su código fuente, en vez de estar buscando de dónde obtenerlo, simplemente le puedes decir que se las consiga maven.

para ésto, en el pom.xml tiene que haber una referencia al scm >>

<scm>
<url>http://numerica.cl/svn/proyecto/test</url>
<connection>scm:svn:http://numerica.cl/svn/proyecto/test/</connection>
<developerConnection>scm:svn:https://numerica.cl/svn/proyecto/test/</developerConnection>
<tag>HEAD</tag>
</scm>

la diferencia entre connection y developerConnection es que el primero es sólo de lectura, mientras el segundo es de lectura y escritura. url es si hay un repositorio navegable via web.

ahora, ¿cómo se tiene acceso a este primer pom.xml si lo queremos usar para nuestros propios proyectos? ¿es necesario tener un repositorio de maven público? parece que sí. ¿cómo?

El tag <repositories> en el pom.xml son los repositorios donde el proyecto tiene que buscar para obtener sus dependencias. Por ej., para un proyecto que usa JBoss, vamos a poner el siguiente repositorio

<repositories>
<!-- The JBoss Community public repository is a composite repository of several major repositories -->
<!-- see http://community.jboss.org/wiki/MavenGettingStarted-Users -->
<!-- At the time of writing, Arquillian and the JBoss Java EE specification POMs are only in the JBoss Community public
repository (not Maven central) -->
<repository>
<id>jboss-public-repository</id>
<name>JBoss Repository</name>
<url>http://repository.jboss.org/nexus/content/groups/public</url>
<!-- These optional flags are designed to speed up your builds by reducing remote server calls -->
<releases>
<updatePolicy>never</updatePolicy>
</releases>
<snapshots>
<updatePolicy>daily</updatePolicy>
</snapshots>
</repository>
</repositories>

¿ésto también podría ir en los settings globales o locales de maven (¿/etc/maven/settings.xml?) (¿~/.m2/settings.xml?)?¿da lo mismo?

En todo caso, para setear a qué repositorio voy a deployar mi proyecto, tengo que utilizar el tag <distributionManagement> >>

<distributionManagement>
    <repository>
      <id>mycompany-repository</id>
      <name>MyCompany Repository</name>
      <url>scp://repository.mycompany.com/repository/maven2</url>
    </repository>
  </distributionManagement>

más detalle en la referencia del pom >>

Entonces, para que levantemos el pimer repositorio interno de maven, ¿basta con que tengamos una estructura de directorios según la especificación y que sea accesible a otros usuarios o servible vía web? Parece que sí, pero en todo caso existen programas para manejar repositorios maven, como Nexus >>

Ok, entonces me bajé Nexus y lo tengo corriendo en http://localhost:8081/nexus..

y ahora qué…

Según la documentación que la idea es usar el repositorio interno como mirror de la Central, para bajar una sola vez las librerías remotamente, etc. pero nos enfocaremos en cómo subir nuestro proyecto para que otros lo bajen.

 

Este sitio utiliza cookies.    Leer más