GitとAntを統合する最良の方法を探しています。 Gitで広く使用されているAntタスクはありますか? AntでGitを使用した経験はありますか(専用タスク、exec呼び出しなど)?
Antは、 execコマンド をサポートしています。これを使用して、コマンド(Gitを含む)をコマンドラインに渡して実行することができます。あなたはいつでもそれに頼ることができます。
JGitを介したGit Antタスクを次に示します。 http://aniszczyk.org/2011/05/12/git-ant-tasks-via-jgit/ .
JGit-Antを見てください 。残念なことに jgit-ant tasksプロジェクトにはすべての主要なgitアクションがありません。追加情報 here を見つけることができます。
GitのAntタスクで追加の非公式の作業が行われたようです。
私はこれらの経験はありませんが、それらはtlrobinsonの肉よりも肉のように見えます。
少し前に、GitとAntを統合するための使用可能な方法を探すことに失敗しました。 Gitブランチの名前でビルドを作成する可能性が必要でした。最後に、私は次の解決策を見つけました。
実際のbuild.xml
ファイルからの抜粋:
<target name="-check-git-branch-name"
if="using.git"
>
<exec executable="bash" logError="true" failonerror="true"
outputproperty="git-branch-name">
<arg value="./bin/git-branch-name.sh" />
</exec>
</target>
ファイルの内容全体./bin/git-branch-name.sh
#!/bin/bash
# This script is the part of integration GIT to ANT. Once launched it
# should return the name of the current branch or the current commit (if
# GIT is the detached HEAD mode). Further the printed name is appended to
# the name of the resulting directory. To initialize this feature you need
# to run ANT with the option "-Dusing.git=".
exec 2>/dev/null
git rev-parse --abbrev-ref HEAD | grep -v HEAD || git rev-parse HEAD
呼び出しは次のようになります。
ant TARGET options -Dusing.git=
${using.git}
が宣言されると、Antはタスク-check-git-branch-name
を呼び出してブランチの名前(またはGitがデタッチモードの場合はコミットの番号)を呼び出し、Gitブランチの名前が追加されたビルドを生成します(またはコミットのhnumber)、たとえばbuild/TARGET-${git-branch-name}
。
JGitライブラリといくつかの<script language="javascript">
コード(Rhino潤滑油を使用しましたが、Groovyなども使用できます)。