jsonpullparserのcustom_rules.xml
Android+JsonPullParserでも書きましたけど、公式にあるcustom_rules.xmlを使うとアノテーションプロセッサのクラスパスに他のライブラリ参照が入ってないので、APT処理によるソースの生成は成功するけどエラーが色々出るのはイケてないなーって思ってて、どうにか修正せねばって事でやってみた
<?xml version="1.0" encoding="UTF-8"?>
<project name="custom_rules">
<target name="-pre-compile">
<!-- 追加 -->
<path id="project.javac.classpath">
<path refid="project.all.jars.path" />
<fileset dir="libs" includes="*.jar" />
<fileset dir="factory" includes="*.jar" />
</path>
<!-- classpathrefを追加 -->
<javac fork="yes" srcdir="src" compiler="javac1.6" encoding="UTF-8" includeantruntime="false" bootclasspathref="project.target.class.path" classpathref="project.javac.classpath">
<!-- -classpathなcompilerargなのは削除 -->
<compilerarg line="-proc:only" />
<compilerarg line="-processor net.vvakame.util.jsonpullparser.factory.JsonAnnotationProcessor" />
<compilerarg line="-s ${gen}" />
<compilerarg line="-AJsonPullParserClassPostfix=${jpp.genclass.postfix}" />
</javac>
</target>
</project>
で問題が1つ解決してなくて、ここで${gen}で指定されるディレクトリがAndroidコンパイルプロセスで参照されないディレクトリを指定した場合どうなるかって事なのですが。ant.properties辺りで
gen=apt_generated
apt.processor.dir=factory
jpp.genclass.postfix=Gen
source.dir=src:apt_generated
な感じでsource.dirに指定しちゃえばant clean releaseで処理されてもソースとしてコンパイルプロセスで参照してくれるっぽい
んまぁあとはJenkinsを利用したビルドとかで問題無ければ良いんじゃないかって所