無料で使えるシステムトレードフレームワーク「Jiji」 をリリースしました!

・OANDA Trade APIを利用した、オープンソースのシステムトレードフレームワークです。
・自分だけの取引アルゴリズムで、誰でも、いますぐ、かんたんに、自動取引を開始できます。

Ivyで依存モジュールを取得するサンプル

次のプロジェクト(の依存プロジェクト)で「ivy.xml」が出てきたのでメモ。
IvyはAntに組み込んで使えるモジュールの依存関係マネージャで、ivy.xmlはその設定ファイルです。

  • モジュールの依存関係を「ivy.xml」に記述することで、
  • 依存モジュールの解決、および取得をAntから実行できます。
  • さらに、依存関係のレポート機能とかもあるらしい。

ということで、以下に依存関係を定義して、そこから依存モジュールを解決し取得するまでの手順をまとめてみます。なお、内容はIvy - Quick Startのぱくりなので、ちゃんと知りたい人はそちらをどうぞ。

手順
  1. 「ivy.xml」を作成し、依存モジュールの情報を書く。
  2. モジュール取得コマンドを実行する「build.xml」を書く。
  3. 作成したAntターゲットを実行して、依存モジュールを取得。
1.「ivy.xml」を作成

「ivy.xml」を作成し、依存モジュールの情報を書きます。

  • info要素に、モジュールの情報を、
  • 「dependencies」-「dependency」に依存モジュールを並べます。
<?xml version="1.0" encoding="UTF-8"?>
<ivy-module version="2.0"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">

  <!-- モジュールの情報を書く -->
  <info organisation="ivy-test" module="test"/>

  <!-- 依存モジュールを書く -->
  <dependencies>
    <!-- aopallianceとguiceに依存 -->
    <dependency name="aopalliance" org="aopalliance" rev="1.0"/>
    <dependency name="guice" org="com.google.code.guice" rev="1.0"/>
  </dependencies>
</ivy-module>

詳細はIvy File のリファレンスを参照ください。

2.「build.xml」を書く

build.xml」を作成し、モジュール取得コマンドを実行するAntターゲットを書きます。

<?xml version="1.0" encoding="UTF-8"?>
<project default="retrieve" basedir="."
         xmlns:ivy="antlib:org.apache.ivy.ant">

  <!-- プロキシ -->
  <setproxy proxyhost="foo.com"
            proxyport="80" />
  <!-- ivyの配置先 -->
  <property name="ivy" value="ivy"/>


  <!-- 依存モジュールをダウンロードするタスク -->
  <target name="retrieve" depends="download-ivy" >
      <ivy:retrieve />
  </target>

  <!-- ivyをダウンロードしてタスクを定義するタスク -->
  <target name="download-ivy">
    <mkdir dir="${ivy}"/>
    <get src="http://repo1.maven.org/maven2/org/apache/ivy/ivy/2.0.0/ivy-2.0.0.jar"
         dest="${ivy}/ivy.jar" usetimestamp="true"/>
    <taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant"
    	classpath="${ivy}/ivy.jar"/>
  </target>

</project>
3.Antターゲットを実行

あとは、2で作成したターゲットを実行するだけ。実行すれば、「./lib」以下に依存モジュールがダウンロードされてくるはずです。