如何从Java 9模块导出使用cxg codegen插件生成的所有类?

如何从Java 9模块导出使用cxg codegen插件生成的所有类?,java,java-9,java-10,java-module,java-platform-module-system,Java,Java 9,Java 10,Java Module,Java Platform Module System,我有一个没有任何明确来源的模块。此模块包含以下cxf codegen插件配置: <plugin> <groupId>org.apache.cxf</groupId> <artifactId>cxf-codegen-plugin</artifactId> <version>${cxf.version}</version>

我有一个没有任何明确来源的模块。此模块包含以下cxf codegen插件配置:

    <plugin>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-codegen-plugin</artifactId>
            <version>${cxf.version}</version>
            <executions>
                <execution>
                    <id>generate-sources</id>
                    <phase>generate-sources</phase>
                    <configuration>
                        <wsdlOptions>
                            <wsdlOption>
                                <wsdl>
                                    ${project.build.directory}/schema/wsdl/service.wsdl
                                </wsdl>
                                <bindingFiles>
                                    <bindingFile>
                                        ${basedir}/src/main/resources/bindings.xml
                                    </bindingFile>
                                </bindingFiles>
                            </wsdlOption>
                        </wsdlOptions>
                    </configuration>
                    <goals>
                        <goal>wsdl2java</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

org.apache.cxf
cxf-codegen插件
${cxf.version}
生成源
生成源
${project.build.directory}/schema/wsdl/service.wsdl
${basedir}/src/main/resources/bindings.xml
wsdl2java
因此,它是对生成的类的依赖。我需要将所有类导出到其他Java模块。比方说,我需要导出
com.company.team.app
包。我尝试将它添加到
模块info.java
中,但它没有编译,因为它说(实际上是有效的):

module info.java:[6,20]包为空或不存在: com.company.team.app


那么我如何导出这些类呢?多谢各位

编译阶段
生成源代码
,因此除非您在编译阶段之前看到错误消息(这很奇怪!),否则源代码已经生成

在你的情况下,我会这么做:

  • 确保源文件是实际生成的。~>在
    mvn clean compile
    之后,您在文件系统中看到它们了吗
  • 确保文件夹包含在要编译的源代码中。~>运行
    mvn compile-X
    并查找以“Source root”开头的消息块-需要在此处提及该文件夹。(如果不是,)
  • 确保包名称正确,即生成的包名称和导出的包名称必须相同

实际上,它是有效的。我不知道我不能指定没有源代码的包,我以为它会递归地解析所有类。但这实际上没有意义。指定包含编译类的确切包确实有帮助。希望它能帮助别人

生成所有类后编译module-info.java。@JohannesKuhn有趣的想法,你知道我如何实现吗?