Dự án tôi đang làm việc trên cần phải sử dụng Google Protobuf để tuần tự hóa, do đó, một số sơ khai phải được tạo trước khi mã của tôi được tạo.Sử dụng ký tự đại diện trong các đối số plugin của Maven exec
Các đối số dòng lệnh tôi sử dụng là:
protoc -I=src/proto --java_out=src/main/java src/proto/*.proto
này hoạt động tốt trong giao diện điều khiển.
Bây giờ tôi muốn sử dụng plugin Maven exec để quy trình thủ công này trở thành một phần của bản dựng Maven. Phần pom tôi sử dụng là:
<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>
lỗi được đưa ra khiếu nại không có tập tin gọi là:. Src/proto/* proto
Tuy nhiên, nó hoạt động tốt nếu tôi loại bỏ các ký tự đại diện và chỉ định một tệp cụ thể, ví dụ
<commandlineArgs>-I=src/proto --java_out=src/main/java src/proto/model.proto</commandlineArgs>
Tôi nghĩ đó là ký tự đại diện * gây ra sự cố khi Maven có cách xử lý khác.
Câu hỏi của tôi là làm cách nào tôi có thể chỉ định "Tất cả các tệp có đuôi .proto trong thư mục đó" trong Maven?
Bạn đã thành công hay bạn sẽ cần thêm trợ giúp? –
Tôi đã quản lý để vượt qua vấn đề này bằng cách viết một kịch bản shell và gọi kịch bản đó trong maven. – Kevin
Ý tưởng hay, nên nghĩ về điều đó trong câu trả lời của tôi. –