Как скомпилировать конкретные файлы прототипов из нескольких каталогов с помощью плагина maven xolstice - PullRequest
0 голосов
/ 22 марта 2019

У меня есть каталоги, подобные приведенной ниже схеме / некоторый путь 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...