LenoMinkus commented on issue #15365: URL: https://github.com/apache/dubbo/issues/15365#issuecomment-3074196944
Title: Generated protobuf sources not picked up by Maven build Body (English): > **Summary** > When using the current `dubbo-maven-plugin` to compile `.proto` files, the generated Java sources are placed under > `target/generated-sources/protobuf/java`, but Maven only scans the standard `src/main/java` directory during `package`. > As a result, the generated classes are not included in the final JAR unless an extra step is taken. > **Suggestion** > 1. Extract `.proto` files into a dedicated Maven module. > 2. Let the `dubbo-maven-plugin` generate sources in that module. > 3. Consume the generated stubs from other modules via a normal Maven dependency. > **Fix** > Add the following dependency and plugin so Maven automatically adds the generated folder to the compile classpath: ```xml <dependencies> <dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo-rpc-triple</artifactId> <version>${dubbo.version}</version> </dependency> <!-- protobuf core --> <dependency> <groupId>com.google.protobuf</groupId> <artifactId>protobuf-java</artifactId> <version>${protobuf.version}</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo-maven-plugin</artifactId> <version>${dubbo.version}</version> <!-- 3.3.0及以上版本 --> <configuration> <!-- 参考下文可配置参数 --> <outputDir>${project.build.directory}/generated-sources/protobuf/java</outputDir> <protoSourceDir>${basedir}/src/main/proto</protoSourceDir> <!--proto编译器组件--> <!--protobuf-java的版本--> <protocVersion>${protobuf.version}</protocVersion> <!--代码生成类型 可填tri或者tri_reactor 服务定义--> <dubboGenerateType>tri</dubboGenerateType> </configuration> <executions> <execution> <goals> <goal>compile</goal> </goals> </execution> </executions> <!-- 添加os-maven-plugin用于自动检测系统类型 --> <dependencies> <dependency> <groupId>kr.motd.maven</groupId> <artifactId>os-maven-plugin</artifactId> <version>1.7.0</version> </dependency> </dependencies> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <version>3.5.0</version> <executions> <execution> <id>add-source</id> <phase>generate-sources</phase> <goals><goal>add-source</goal></goals> <configuration> <sources> <!-- 与 dubbo-maven-plugin 的 outputDir 保持一致 --> <source>${project.build.directory}/generated-sources/protobuf/java</source> </sources> </configuration> </execution> </executions> </plugin> <!-- <plugin>--> <!-- <groupId>org.xolstice.maven.plugins</groupId>--> <!-- <artifactId>protobuf-maven-plugin</artifactId>--> <!-- <version>0.6.1</version>--> <!-- <configuration>--> <!-- <protocArtifact>com.google.protobuf:protoc:3.19.4:exe:${os.detected.classifier}</protocArtifact>--> <!-- <protocPlugins>--> <!-- <protocPlugin>--> <!-- <id>dubbo</id>--> <!-- <groupId>org.apache.dubbo</groupId>--> <!-- <artifactId>dubbo-compiler</artifactId>--> <!-- <version>0.0.4.1-SNAPSHOT</version>--> <!-- <mainClass>org.apache.dubbo.gen.tri.Dubbo3TripleGenerator</mainClass>--> <!-- </protocPlugin>--> <!-- </protocPlugins>--> <!-- </configuration>--> <!-- <executions>--> <!-- <execution>--> <!-- <goals>--> <!-- <goal>compile</goal>--> <!-- </goals>--> <!-- </execution>--> <!-- </executions>--> <!-- </plugin>--> </plugins> </build> > **Environment** > - Dubbo version: 3.3.0 > - Maven: 3.9.x > - JDK: 17 some photos -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: notifications-unsubscr...@dubbo.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: notifications-unsubscr...@dubbo.apache.org For additional commands, e-mail: notifications-h...@dubbo.apache.org