私はこれらの3つすべてを含むソリューションを探しています。これまでは、ビルド中にprotoファイルからJavaコードを生成するMavenプラグインや、protoファイルからScalaコードを生成するコマンドラインツールを見つけることができましたが、すべてを一緒に混ぜることはありませんでした。MavenビルドでProtobufファイルからScalaコードを生成する方法はありますか?
私が今までに見つけた最も有望なのは、ScalaBuffとそれがMaven reposに存在するという事実です。私は以下のようなものを依存関係として追加した場合は...
<dependency>
<groupId>net.sandrogrzicic</groupId>
<artifactId>scalabuff-compiler_2.10</artifactId>
<version>1.3.6</version>
</dependency>
<dependency>
<groupId>net.sandrogrzicic</groupId>
<artifactId>scalabuff-runtime_2.10</artifactId>
<version>1.3.6</version>
</dependency>
...単にMavenのビルドのフェーズでUTILコマンドラインとして、それを起動構築持ってする方法はありますか? (うまくいけば、ソースを生成する)私もこれを見つけましたが、これらをうまく組み合わせる方法については紛失しています:Maven:http://mojo.codehaus.org/exec-maven-plugin/
注:これは移植可能で何かに依存しないことが本当に欲しいです私のローカルボックスにインストールされていますが、ハッキングは完全に歓迎です(つまり、ソースコントロールにjarまたは実行可能ファイルを追加する)。
ありがとうございます!
UPDATE:
上記の依存関係に加えて、私は次のよう...
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<executions>
<execution>
<id>protobuf-sources</id>
<phase>generate-sources</phase>
<goals>
<goal>java</goal>
</goals>
</execution>
</executions>
<configuration>
<mainClass>net.sandrogrzicic.scalabuff.compiler.ScalaBuff</mainClass>
<arguments>
<argument>--proto_path=src/main/protobuf</argument>
<argument>--scala_out=target/generated-sources/scalabuff</argument>
</arguments>
<sourceRoot>target/generated-sources/scalabuff</sourceRoot>
</configuration>
</plugin>
を追加した場合、...私は(生成-ソース相に)私のビルド時にソースを生成することができます何らかの理由でexecプラグインを実行した直後にビルドが停止します。だから近くに!誰かが最後の問題を解決できれば、これは解決されます。
私はsbtが受け入れ可能ではないと思いませんか? https://github.com/gseitz/sbt-protobuf/tree/scalabuff ...本当にMavenを使いたい場合は、Mavenにsbtビルドを起動するように設定できます。 – sdanzig
私はMavenに固執する必要があります - それは選択ではありません。 Mavenにexecプラグインを使用してScalaBuffコンパイラを呼び出させることは可能ですが、Mavenがそのプラグインを使用するためにbarebones SBTビルドを呼び出そうとすると思います。 –
あなたの解決策を回答として追加し、それを合格とマークできますか?私はあなたが見つけたように 'exec'プラグインがここでの正しい修正であることに同意します。 – Rich