You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@dubbo.apache.org by "LenoMinkus (via GitHub)" <gi...@apache.org> on 2025/07/15 15:41:30 UTC

Re: [I] [Bug] Application-level service discovery fails when IDL `package` and `java_package` differ [dubbo]

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-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org