読者です 読者をやめる 読者になる 読者になる
無料で使えるシステムトレードフレームワーク「Jiji」 をリリースしました!

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

jarとivy.xmlを別々の場所から取得する

dual リゾルバを使うと、jarとivy.xmlをそれぞれ別のリゾルバを使って取得することができます。非ivyなjarがあってアクセス可能なURLで公開されている場合、ローカルにivy.xmlを用意しdualリゾルバでURL上のjarとローカルのivy.xmlをそれぞれを取得することで、ivyなjarとして依存関係を解決したりできます。

具体的には

ibysettings.xmlでリゾルバとしてdual要素を配置し、子要素に

  1. ivy.xmlなどの設定ファイルを解決するリゾルバ
  2. jarを解決するリゾルバ

を順番に指定します。逆にすると動かないのでご注意。以下は、ivy.xmlをローカルの特定のパスから、jarを特定のURLから取得する場合の設定例です。

<?xml version="1.0" encoding="UTF-8"?>
<ivysettings>
  <settings defaultResolver="dual"/>
  <resolvers>
    <!-- dualリゾルバでivy.xmlとjarを別の場所から取得 -->
    <dual name="dual">
      <!-- 子要素として、ivy.xmlとjarの取得先を順に並べる -->
      <filesystem name="ivys">
        <ivy pattern="${ivy.settings.dir}/ivys/[module]-ivy.xml" />
      </filesystem>
      <url name="url">
        <artifact pattern="http://foo.com/export/xxx/yyy/[revision]/[organisation]/common/jars/[artifact].[ext]" />
      </url>
    </dual>
  </resolvers>
</ivysettings>

chainリゾルバとの併用も可

chainリゾルバと併用することも可能です。以下の設定では、ローカルファイルからivy.xml/URLからjarを取得し、取得できない場合はibiblioリゾルバから取得します。

<?xml version="1.0" encoding="UTF-8"?>
<ivysettings>
  <settings defaultResolver="chain"/>
  <resolvers>
    <chain name="chain" returnFirst="true">
      <dual name="dual">
        <filesystem name="ivys">
          <ivy pattern="${ivy.settings.dir}/ivys/[module]-ivy.xml" />
        </filesystem>
        <url name="url">
          <artifact pattern="http://foo.com/export/xxx/yyy/[revision]/[organisation]/common/jars/[artifact].[ext]" />
        </url>
      </dual>
      <ibiblio name="maven2" m2compatible="true"/>
    </chain>
  </resolvers>
</ivysettings>