Как я могу сделать git pull в Maven? - PullRequest
7 голосов
/ 15 июня 2011

Я новичок и в maven, и в git, и хотел получить помощь в настройке проекта.

Есть ли способ определить цель в поме, чтобы толкать / тянуть из мерзавца во время, связанного с фазой maven? Например, могу ли я получить git во время фазы установки maven?

Если да, как это можно сделать? Буду признателен за любые примеры кода.

Ответы [ 3 ]

11 голосов
/ 28 июня 2011

Хорошая идея или нет, вот как вы можете оформить заказ ( вытащить клон из Github), используя Maven. Пусть ваш pom.xml будет выглядеть так:

<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://vitorsouza@github.com/vitorsouza/EngeSoft.git</developerConnection>
    <url>https://github.com/vitorsouza/EngeSoft</url>
</scm>
</project>

Затем используйте mvn scm:checkout. Когда я запустил это, он вытащил код в папку target/engesoft. Вероятно, есть способ настроить его, чтобы разместить его где-то еще. Проверьте следующие страницы:

3 голосов
/ 28 июня 2011

Вместо того, чтобы делать это во время сборки Maven, используйте CI-сервер, такой как Jenkins . Он будет выполнять git pull перед запуском maven, поэтому инструмент сборки может сосредоточиться на своей основной цели: сборка исходного кода.

Это также упрощает разработку, так как тяга будет происходить только тогда, когда вы этого хотите. Если вы будете тянуть все время, другой разработчик может что-то изменить, и вы получите ошибки, которые вы не ожидаете.

2 голосов
/ 14 апреля 2012

scm: цель проверки Витор имеет в виду клон, а не тягу (огромная разница в Git).

Мне пришлось использовать цель exec, чтобы сделать то, что вы описываете. Я также не хотел делать полный клон каждый раз, когда была сборка. Вместо этого я использую git reset --hard и затем pull -f origin. Релиз: релиз (через exec).

Если я найду лучший способ (и он должен быть), я выложу его здесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...