11

私はmavenとgitの両方に不慣れで、プロジェクトの設定について助けを求めていました。

Mavenフェーズにリンクされている間にgitからプッシュ/プルするpomの目標を定義する方法はありますか?たとえば、Mavenのインストールフェーズ中にgitからプルできますか?

はいの場合、それはどのように達成できますか?コード例をいただければ幸いです。

4

3 に答える 3

11

良いアイデアかどうかは別として、チェックアウトを行う方法は次のとおりです(引くMavenを使用してGithubからクローンを作成します。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。おそらく、別の場所に配置するように構成する方法があります。次のページをチェックしてください。

于 2011-06-28T12:23:57.383 に答える
4

Mavenビルド中にこれを行う代わりに、 JenkinsのようなCIサーバーを使用します。Mavenを実行するgit pull前に実行するため、ビルドツールはその主な目的であるソースコードのビルドに集中できます。

これにより、プルは必要なときにのみ発生するため、開発がより簡単になります。いつも引っ張ると、別の開発者が何かを変更する可能性があり、予期しないエラーが発生します。

于 2011-06-28T12:27:03.667 に答える
2

Vitorが参照しているscm:checkoutの目標はクローンであり、プルではありません(Gitの大きな違い)。

私はあなたが説明していることをするためにexecゴールを使わなければなりませんでした。また、ビルドが行われるたびにクローン全体を作成したくありませんでした。代わりに、git reset --hardを使用してから、-f origin Release:Releaseを(exec経由で)プルします。

より良い方法を見つけた場合(そしてそれが必要な場合)、ここに投稿します。

于 2012-04-13T20:23:22.717 に答える