如何从 Java 9 模块导出所有使用 cxg-codegen-plugin 类 生成的文件?
How do I export all the generated with cxg-codegen-plugin classes from a Java 9 module?
我有一个没有任何明确来源的模块。此模块包含以下 cxf-codegen-plugin 配置:
<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>
所以它是生成类的依赖。我需要将所有 类 导出到其他 Java 模块。比方说,我需要导出 com.company.team.app
包。我尝试将它添加到 module-info.java
但它没有编译,因为它说(实际上有效):
module-info.java:[6,20] package is empty or does not exist:
com.company.team.app
那我该如何导出这个 类?非常感谢!
compile
阶段 comes after generate-sources
,所以除非您在 compile
阶段 之前看到错误消息 (即会很奇怪!),源已经生成。
在你的情况下我会这样做:
- 确保源是实际生成的。 ~> 你在
mvn clean compile
之后在文件系统中看到它们了吗?
- 确保该文件夹包含在要编译的源代码中。 ~> 运行
mvn compile -X
并注意以 "Source roots" 开头的消息块 - 需要在此处提及该文件夹。 (如果不是,add it。)
- 确保包名正确,即生成的包名和导出的包名必须相同。
实际上,它有效。我不知道我不能指定没有源的包,我认为它会递归地解析所有 类 。但这实际上没有意义。指定包含已编译 类 的确切包确实有帮助。希望对大家有帮助!
我有一个没有任何明确来源的模块。此模块包含以下 cxf-codegen-plugin 配置:
<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>
所以它是生成类的依赖。我需要将所有 类 导出到其他 Java 模块。比方说,我需要导出 com.company.team.app
包。我尝试将它添加到 module-info.java
但它没有编译,因为它说(实际上有效):
module-info.java:[6,20] package is empty or does not exist: com.company.team.app
那我该如何导出这个 类?非常感谢!
compile
阶段 comes after generate-sources
,所以除非您在 compile
阶段 之前看到错误消息 (即会很奇怪!),源已经生成。
在你的情况下我会这样做:
- 确保源是实际生成的。 ~> 你在
mvn clean compile
之后在文件系统中看到它们了吗? - 确保该文件夹包含在要编译的源代码中。 ~> 运行
mvn compile -X
并注意以 "Source roots" 开头的消息块 - 需要在此处提及该文件夹。 (如果不是,add it。) - 确保包名正确,即生成的包名和导出的包名必须相同。
实际上,它有效。我不知道我不能指定没有源的包,我认为它会递归地解析所有 类 。但这实际上没有意义。指定包含已编译 类 的确切包确实有帮助。希望对大家有帮助!