2011-06-15 9 views
7

Soy nuevo en maven y git y quería obtener ayuda para establecer un proyecto.¿Cómo puedo hacer un jalón en Maven?

¿Hay alguna manera de definir un objetivo en el pom para empujar/tirar de git durante el enlazado a una fase maven? Por ejemplo, ¿puedo extraer de git durante la fase de instalación de maven?

En caso afirmativo, ¿cómo se puede lograr? Agradecería cualquier ejemplo de código.

+0

¿Por qué te gustaría empujar o tirar durante una construcción? Suena como una muy mala idea. –

+0

No es realmente una compilación. El proyecto contiene pruebas automatizadas. Y la forma en que se configura nuestro marco de prueba, necesitamos extraer el último código de marco para ejecutar las pruebas de vez en cuando. – user786045

+2

Suponiendo que la extracción se adelantará (no se necesita una resolución de fusión), ¿no es simplemente ejecutar "git pull repoName" y "mvn arguments" lo suficientemente simple? Si no puede avanzar rápidamente, ¿cómo debería manejarse? –

Respuesta

11

Buena idea o no, así es como se puede hacer un checkout ( pull clonar desde Github) usando Maven. Haga que su pom.xml aspecto:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 

<modelVersion>4.0.0</modelVersion> 
<groupId>br.com.javamagazine</groupId> 
<artifactId>engesoft</artifactId> 
<packaging>war</packaging> 
<version>0.0.1-SNAPSHOT</version> 
<name>engesoft Maven Webapp</name> 
<url>http://maven.apache.org</url> 

<scm> 
    <connection>scm:git:git://github.com/vitorsouza/EngeSoft.git</connection> 
    <developerConnection>scm:git:https://[email protected]/vitorsouza/EngeSoft.git</developerConnection> 
    <url>https://github.com/vitorsouza/EngeSoft</url> 
</scm> 
</project> 

A continuación, utilice mvn scm:checkout. Cuando ejecuté esto, sacó el código a la carpeta target/engesoft. Probablemente haya una forma de configurarlo para colocarlo en otro lugar. Echa un vistazo a las siguientes páginas:

+1

¿Dónde especifica la contraseña de git? –

+0

Uso claves SSH en lugar de contraseña. Ver https://help.github.com/articles/generating-ssh-keys –

2

lugar de hacer esto durante el Maven construir, utilizar un servidor CI como Jenkins. Hará el git pull antes de ejecutar maven, por lo que la herramienta de compilación se puede concentrar en su objetivo principal: crear código fuente.

Esto también hace que sea más fácil para usted desarrollar ya que el tirón solo ocurrirá cuando usted lo desee. Si tira todo el tiempo, otro desarrollador puede cambiar algo y obtendrá errores que no espera.

2

scm: objetivo de finalización de la compra Vitor se refiere a es un clon, no un tirón (gran diferencia en Git).

Tuve que usar el objetivo del ejecutivo para hacer lo que estás describiendo. Tampoco quería hacer un clon completo cada vez que había una compilación. En su lugar, utilizo git reset --hard y luego pull -f origin Lanzamiento: Release (via exec).

Si encuentro una mejor manera (y TIENE que haber una) la publicaré aquí.

+0

Gracias por la aclaración. Sigo siendo un novato git. –

Cuestiones relacionadas