私は、ビルドよりもCIに多くがあるとしてこれを管理するための認識CI toolを使用してお勧めします。
自分のロールを決めたら、maven-scm-pluginのいくつかの目標を使用して出力をキャプチャできます。
あなたがポンポンへのアクセスをしたので、プロジェクトのローカルコピーを持っていると仮定すると、あなたが変更を確認するためにstatusコマンドを実行し、すべての変更をチェックする出力を解析することができます 使用する目的は次のとおりです。
mvn scm:status
変更されたファイルがある場合は、変更をチェックアウトしてビルドを呼び出すことができます。 しかし、maven-scm-provider-svn link textには、変更されたファイルをスキップできるバグがあります。 Subversionを直接呼び出して、その出力を解析する方がよいかもしれません。
たとえば、次の例は、以前のビルドをクリアし、変更されたコンテンツをチェックアウトしてからdeploy目標を実行します。
mvn clean scm:checkout deploy
プロジェクトの作業コピーを持っていない場合、あなたはそれを得るためにscm:bootstrap目標を使用することができます。 pomにいくつかのプロパティを設定した場合、pomを再利用して複数のプロジェクトをブートストラップすることができます。あなたはそれに適切なコマンドライン引数を渡す場合
例えば以下のポンポンは、任意のプロジェクトをブートストラップすることができます
mvn scm:bootstrap -DscmUserName=me -DscmPassword=mypass -DscmConnectionUrl=scm:svn:http://myserver/myproject/trunk
<project>
[...]
<packaging>jar</packaging>
<version>0.0.1</version>
<name>SCM bootstrapper</name>
<url>http://somecompany.com</url>
<scm>
<connection>${scmConnectionUrl}</connection>
<developerConnection>${scmDeveloperConnectionUrl}</developerConnection>
<url>${scmUrl}</url>
<scm>
[...]
<build>
[...]
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-scm-plugin</artifactId>
<version>1.0</version>
<configuration>
<goals>install</goals>
<username>${scmUsername}</username>
<password>${scmPassword}</password>
</configuration>
</plugin>
</plugins>
[...]
</build>
[...]
<properties>
<scmDeveloperConnectionUrl>dummy</scmDeveloperConnectionUrl>
<scmConnectionUrl>dummy</scmConnectionUrl>
<scmUrl>dummy</scmUrl>
<scmUsername>dummy</scmUsername>
<scmPassword>dummy</scmPassword>
</properties>
</project>
Mavenのは、あなたがPOMのSCMセクションを設定する必要が転覆して動作させるには:変更のためのポーリングのための代替として
<scm>
<connection>scm:svn:http://path/to/project</connection>
<developerConnection>scm:svn:http://path/to/project/tags/version</developerConnection>
<url>scm:svn:http://path/to/project/tags/version</url>
</scm>
、hook to subversionようにトンを追加することを検討変更が行われたときにビルドがトリガーされます。 another questionがあります。これを行う上でのポインタを与えることができます。あなたは私が自動化したい主なポイントである任意の変更されたファイル が表示された場合、あなたが言及しているバグのため、私はそれを行う方法を見つけ出すことはできません原因
>> :)おそれ。だから私はおそらく、ユーザーの 'svn update'コマンドを使う方が簡単で、シェルスクリプトの出力を構文解析して入ってくる変更を検出する方が簡単かもしれないという結論に至りました。 これはありがとうございます! – glaz666
あなたは、現在のビルドをチェックするためのキューやフラグを実装していない限り、頻繁なコミットは、このアプローチで問題を起こし始めることができるけれども、私は、あなたのビルドをトリガするためにSubversionのフックを使用して最後にビットを追加しました。 –
スーパー、フックが動作します!ありがとう! – glaz666