Eclipseの.factorypathでのAPT処理に関して

2013-06-01T00:00:00+00:00 Eclipse gradle

EclipseでAPT処理を使ってソースを生成したりする場合においては

<factorypath>
  <factorypathentry
    kind="WKSPJAR"
    id="/{PROJECT_NAME}/libs/slim3-gen-1.0.16.jar"
    enabled="true"
    runInBatchMode="false" />
</factorypath>

っていうような.factorypathが設定を行う事で作られるようになる。で例えばgradleとかを使ってeclipseタスクを実行する際にこれを生成するには自力でなんとかしないといけない。実はそういうネタではなくてポイントは、「指定されているJARをプロジェクトワークスペース内にコピーしないと出来ない」っていうのがあったけど、それそもそもが設定を間違ってたというオチだったようで。上記だと

<factorypath>
  <factorypathenty
    kind="EXTJAR"
    id="/path/to/slim3-gen.jar" />
</factorypath>

というようにWKSPJARではなくて、EXTJARを使わないとプロジェクトワークスペース外からのJARの参照が出来ない模様。という事で以前作ったSlim3プロジェクトをgradleベースなビルドツールで出来るようにしたテンプレートを修正

def slim3Gen = configurations.aptCompile.find {
  it.name.startsWith("slim3-gen")
}

def f = file(".factorypath")
def w = new FileWriter(f)

def xml = new MarkupBuilder(w)
xml.setDoubleQuotes(true)
xml."factorypath"() {
    "factorypathentry"(
        kind: "EXTJAR",
        id: slim3Gen,
        enabled: true,
        runInBatchMode: false
    )
}
w.close()

というような感じですかねと。以前はWKSPJARを指定して、slim3-gen.jarをlibにコピーしてからプロジェクトワークスペースから参照っていう形を取ってたけど、これでEXTJARを使えばコピーしなくてもパスさえ分かってれば可能な感じ

rspecを勉強してみる Android ViewPagerIndicatorを使ってみた