У меня есть каталоги, подобные приведенной ниже схеме / некоторый путь A / proto1.proto схема / некоторый путь A / proto2.proto схема / некоторый путь B / proto1.proto схема / некоторый путь B / proto2.proto moduleA / pom.xml moduleB/pom.xml
Это то, что я унаследовал и не могу внести изменения в структуру каталогов / компиляции.В файле pom.xml модуля A мне нужно скомпилировать (скажем, pathA / proto1 & pathB / proto1) В файле pom.xml модуля B мне нужно скомпилировать (скажем) pathA / proto2 & pathB / proto2
В настоящее времяу всех разработчиков установлен protoc-2.5.0, и в наших poms у нас есть maven-antrun-plugin, который выполняет все вышеперечисленное.Поскольку я «вынужден» (не хочу здесь приводить причины) использовать файл proto с синтаксисом proto3 где-то в моем проекте, мне нужна версия 3.x protobuf-java (я использую 3.6.1).Похоже, что существующие файлы proto, скомпилированные с protoc-2.5, несовместимы с этой 3.x версией protobuf-java.Я уже столкнулся с проблемами, которые показывают это.Поэтому я хочу скомпилировать весь проект, включая структуру, как указано выше, с protoc-3.6.1.Но я не хочу заставлять более сотни разработчиков устанавливать protoc-3.6.1 на свои машины, включая наши сборочные машины.Потому что сейчас именно так все компилируются, где maven-antrun-plugin просто вызывает «protoc», который является локальным на машине.Так что я хочу запустить плагин maven xolstice, чтобы проток загружался на лету.Учитывая этот фон, я не могу найти способ выбрать и выбрать несколько прототипов файлов для компиляции с помощью плагина maven xolstice.
Я пробовал это, но это не заняло несколько раз.Кроме того, даже если мне удалось предоставить несколько каталогов, мне все равно нужен способ выбрать определенный файл прото в каталоге.
Пожалуйста, помогите!
<extensions>
<extension>
<groupId>kr.motd.maven</groupId>
<artifactId>os-maven-plugin</artifactId>
<version>${os.mvn.plugin.version}</version>
</extension>
</extensions>
<plugins>
<plugin>
<groupId>org.xolstice.maven.plugins</groupId>
<artifactId>protobuf-maven-plugin</artifactId>
<version>${protobuf.mvn.plugin.version}</version>
<configuration>
<includeSourceInfoInDescriptorSet>true</includeSourceInfoInDescriptorSet>
<protoSourceRoot>${project.basedir}/../../schema/pathA/</protoSourceRoot>
<protoSourceRoot>${project.basedir}/../../schema/pathB/</protoSourceRoot>
<protocArtifact>com.google.protobuf:protoc:${protoc.version}:exe:${os.detected.classifier}</protocArtifact>
<pluginId>grpc-java</pluginId>
<pluginArtifact>io.grpc:protoc-gen-grpc-java:${grpc.version}:exe:${os.detected.classifier}</pluginArtifact>
<additionalProtoPathElements>
<additionalProtoPathElement>${project.basedir}/../../schema/src/main/proto</additionalProtoPathElement>
</additionalProtoPathElements>
</configuration>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>compile-custom</goal>
</goals>
</execution>
</executions>
</plugin>