Il progetto su cui sto lavorando deve utilizzare Google Protobuf per la serializzazione, pertanto è necessario generare un numero di stub prima della creazione del codice.Utilizza il carattere jolly negli argomenti del plugin exec di Maven
Gli argomenti della riga di comando che uso è:
protoc -I=src/proto --java_out=src/main/java src/proto/*.proto
Questo funziona bene nella console.
Ora desidero utilizzare il plugin exec di Maven in modo che questa procedura manuale diventi parte della build di Maven. La sezione pom che ho usato è:
<build>
<plugins>
<plugin>
<artifactId>exec-maven-plugin</artifactId>
<groupId>org.codehaus.mojo</groupId>
<version>1.3.2</version>
<executions>
<execution>
<id>Google Protobuf Stub Generation</id>
<phase>generate-sources</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>protoc</executable>
<commandlineArgs>-I=src/proto --java_out=src/main/java src/proto/*.proto</commandlineArgs>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
Un errore è dato a lamentarsi non v'è alcun file chiamato:. Src/proto/* proto
Tuttavia, funziona bene se tolgo il carattere jolly e specificare un file specifico, ad es
<commandlineArgs>-I=src/proto --java_out=src/main/java src/proto/model.proto</commandlineArgs>
Penso che sia il carattere jolly * che causa il problema poiché Maven potrebbe avere un modo diverso di gestirlo.
La mia domanda è: come posso specificare "Tutti i file con estensione .proto in quella cartella" in Maven?
Hai avuto successo o avresti bisogno di più aiuto? –
Sono riuscito a bypassare questo problema scrivendo uno script di shell e chiamandolo in Maven. – Kevin
Buona idea, avrei dovuto pensarci nella mia risposta. –