2011-06-15 17 views
7

Hem maven hem git için yeniyim ve bir proje oluştururken yardım almak istedim.Maven'de git çekmeyi nasıl yapabilirim?

bir maven faza bağlı sırasında git den itme/çekme için pom bir hedef tanımlamak için bir yol var mı? Örneğin, maven kurulum aşamasında git'ten alabilir miyim?

Evet ise, bu nasıl yapılabilir? Herhangi bir kod örneği için minnettarım.

+0

Neden inşa sırasında itmek veya çekmek istersiniz? Gerçekten kötü bir fikir gibi geliyor. –

+0

Gerçekten bir yapı değil. Proje otomatik testler içeriyor. Ve test çerçevemizin kurulum şekli, zaman zaman testleri çalıştırmak için en yeni çerçeve kodunu almamız gerekiyor. – user786045

+2

Çekişin hızlı ileri sarılacağını varsayarsak (birleştirme çözünürlüğü gerekmez), sadece "git pull repoName", sonra "mvn argümanları" yeterince basit değil mi? İleriye doğru ilerlemezse, maven bunu nasıl ele almalıdır? –

cevap

11

İyi fikir ya da değil, Maven'i kullanarak bir ödeme ( Github'dan klonunu çekme) işlemini nasıl yapabilirsiniz. senin pom.xml şuna benzer var:

<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> 

Sonra mvn scm:checkout kullanın. Bunu çalıştırdığımda, kodu target/engesoft klasörüne çekti. Muhtemelen başka bir yere yerleştirmek için yapılandırmanın bir yolu vardır. Aşağıdaki sayfalara bakın:

+1

Git şifresini nerede belirtirsiniz? –

+0

Parola yerine SSH anahtarlarını kullanıyorum. Bkz. Https://help.github.com/articles/generating-ssh-keys –

2

yerine Maven'in inşa sırasında bunu yapmanın, Jenkins gibi bir CI sunucusu kullanmak. Maven'i çalıştırmadan önce git pull yapacaktır, bu yüzden yapım aracı ana amacına odaklanabilir: Bina kaynak kodu. Bunları istediğiniz zaman çekme tek olacak beri geliştirmek için

Bu aynı zamanda daha basit hale getirir. Her zaman çekerseniz, başka bir geliştirici bir şeyi değiştirebilir ve beklemediğiniz hatalar alırsınız.

2

scm: çıkış hedefi Vitor bir klonlama değil, bir çekme (Git'te büyük fark) anlamına gelir.

ben Tarif ettiğiniz ne yapacağını exec hedefi kullanmak zorunda kaldı. Ayrıca, her inşada bir klon yapmak istemedim. Bunun yerine, git kökenli Release -f --hard ve sonra çekme sıfırlamak kullanın: (exec üzerinden) serbest bırakın.

Daha iyi bir yol bulursam (ve orada bir tane olmalı) Burada yayınlayacağım.

+0

Açıklama için teşekkürler. Ben hala bir git acemi. –