Интеграция protoc со сборкой Maven и Eclipse - PullRequest
0 голосов
/ 18 апреля 2019

Я строю проект с использованием только protobuf для использования в качестве библиотеки в другом проекте. Я не хочу сохранять сгенерированный java-код в git, этот код следует использовать как сгенерированный источник.

Моя проблема: как интегрировать подключаемый модуль protoc maven в сборку Eclipse?

Я использую lifecycle-mapping в качестве конфигурации ниже, но она не работает при инкрементной сборке runOnIncremental. Как заставить это работать?

<build>
    <plugins>
        <plugin>
            <groupId>com.github.os72</groupId>
            <artifactId>protoc-jar-maven-plugin</artifactId>
            <version>3.7.0.2</version>
            <executions>
                <execution>
                    <phase>generate-sources</phase>
                    <goals>
                        <goal>run</goal>
                    </goals>
                    <configuration>
                        <protocVersion>${protobuf.version}</protocVersion>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
    <pluginManagement>
        <plugins>
            <!--This plugin's configuration is used to store Eclipse m2e settings 
                only. It has no influence on the Maven build itself. -->
            <plugin>
                <groupId>org.eclipse.m2e</groupId>
                <artifactId>lifecycle-mapping</artifactId>
                <version>1.0.0</version>
                <configuration>
                    <lifecycleMappingMetadata>
                        <pluginExecutions>
                            <pluginExecution>
                                <pluginExecutionFilter>
                                    <groupId>com.github.os72</groupId>
                                    <artifactId>protoc-jar-maven-plugin</artifactId>
                                    <versionRange>[3.7.0.2,)</versionRange>
                                    <goals>
                                        <goal>compile</goal>
                                        <goal>testCompile</goal>
                                    </goals>
                                </pluginExecutionFilter>
                                <action>
                                    <execute>
                                        <runOnIncremental>true</runOnIncremental>
                                    </execute>
                                </action>
                            </pluginExecution>
                        </pluginExecutions>
                    </lifecycleMappingMetadata>
                </configuration>
            </plugin>
        </plugins>
    </pluginManagement>
</build>
...