2016-06-29 1 views
0

У меня много файлов .proto, и я использую maven-antrun-plugin для генерации необходимых файлов Java. Он работает до тех пор, как я специально пишу каждую .proto файл, например:Maven: добавление всех файлов .proto в плагин

<plugin> 
     <artifactId>maven-antrun-plugin</artifactId> 
     <executions> 
     <execution> 
      <id>generate-sources</id> 
      <phase>generate-sources</phase> 
      <configuration> 
      <tasks> 
       <mkdir dir="target/src-gen"/> 
       <exec executable="protoc"> 
       <arg value="--java_out=target/src-gen"/> 
       <arg value="target/proto/Empty.proto"/> 
       <arg value="target/proto/ComponentState.proto"/> 
       </exec> 
      </tasks> 
      <sourceRoot>target/src-gen</sourceRoot> 
      </configuration> 
      <goals> 
      <goal>run</goal> 
      </goals> 
     </execution> 
     </executions> 
    </plugin> 

Это уже работает отлично.

Однако, теперь, когда я получаю больше файлов .proto (около 30), я не могу использовать вышеуказанный метод, так как мне придется писать его один за другим, и я не думаю, что это подходящий способ Делать это.

Есть ли ярлык для этого? Чтобы сказать «скомпилируйте все файлы .proto под этим каталогом и его подкаталогами». было бы очень приятно.

У кого-нибудь есть идея?

ответ

1

Следующий снипп работает для меня.

<configuration> 
    <target> 
    ... 
     <path id="protobuf.input.filepaths.path"> 
      <fileset dir="${protobuf.input.directory}"> 
       <include name="**/*.proto"/> 
      </fileset> 
     </path> 
    ... 
    </target> 
</configuration>