ProtocolBuffersのソース生成をmavenのビルドプロセスに組み込む

ProtocolBuffersのバイナリをproject直下のtoolsに展開

/tools/protobuf-2.3.0.tar.gz
/tools/protoc
/tools/protoc-2.3.0-win32.zip
/tools/protoc.exe

圧縮ファイルも置いとくとバージョンが分って親切かも…


定義ファイルをsrc/main/protobuf/におく

pom.xmlのpluginsに下記antrunを追加

<project>
  ....
  <build>
    ......
    <plugins>
      <plugin>
        <artifactId>maven-antrun-plugin</artifactId>
        <executions>
          <execution>
            <id>generate-sources</id>
            <phase>generate-sources</phase>
            <configuration>
              <tasks>
                <condition property="protoc" value="protoc.exe" else="protoc">
                  <os family="windows" />
                </condition>
                <exec executable="${basedir}/tools/${protoc}">
                  <arg value="--java_out=src/main/java" />
                  <arg value="src/main/protobuf/定義ファイル" />
                </exec>
              </tasks>
              <sourceRoot>src/main/java</sourceRoot>
            </configuration>
            <goals>
              <goal>run</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>

あとは

mvn compile

で定義ファイルの設定に従ってソースが生成される