Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java IntelliJ中自动生成的JAXB存根的导入无法识别_Java_Maven_Jaxb - Fatal编程技术网

Java IntelliJ中自动生成的JAXB存根的导入无法识别

Java IntelliJ中自动生成的JAXB存根的导入无法识别,java,maven,jaxb,Java,Maven,Jaxb,我是JAXB新手,正在使用IntelliJ。我正在学习一个在线教程。在我学习Marshall/UnMarshall的时候,我已经下载了源代码。在编组示例类中,我尝试导入一个已自动生成的存根,但IntelliJ在尝试将Patient.class用作JAXBContext.newInstancePatient.class的参数时无法识别其导入: 我已尝试使缓存无效并重新启动。演示使用Eclipse。我注意到演示中有一个.classpath文件,当我尝试在IntelliJ中使用新项目时,它不是自动生成

我是JAXB新手,正在使用IntelliJ。我正在学习一个在线教程。在我学习Marshall/UnMarshall的时候,我已经下载了源代码。在编组示例类中,我尝试导入一个已自动生成的存根,但IntelliJ在尝试将Patient.class用作JAXBContext.newInstancePatient.class的参数时无法识别其导入:

我已尝试使缓存无效并重新启动。演示使用Eclipse。我注意到演示中有一个.classpath文件,当我尝试在IntelliJ中使用新项目时,它不是自动生成的

是什么导致了进口问题? 对于JAXB项目来说,这仍然是一种通用/正确的项目结构吗? 谢谢

建议解决方案的新屏幕截图:


这是因为项目中的根源代码目录是src/main/java,生成的类位于src/generated/com。。。。您可以通过右键单击->将目录标记为->源根目录,将src/生成的目录设置为源目录

或者您可以将生成的类移动到src/main/java/com。。。。我建议做第二个选择

在新问题后编辑:
因此,您正在使用jaxb2生成这些类。我认为应该这样设置:${project.basedir}/src/main/java,路径中没有生成的文件夹。由于类中的包名以com.bharatthippireddy开头。。。而不是用generated.com.bharatthippireddy。。。因此,在源根目录中必须有com文件夹。我认为即使有META-INF和org树,它也应该能工作。我不知道您怎么能省略这些树的生成,可能是JAXB2文档包含了一些线索。

到底是什么执行了自动生成?谢谢。第一个解决方案的工作原理如前所述。第二个答案似乎是最佳实践,因为它创建了更典型的文件结构。但是,我使用的是mvn clean package命令,这会生成一个“com”、“META-INF”和“org”顶级结构,但它不起作用。在maven中定义这一点的正确方法应该是什么?我会更新原来的截图post@Steerpike也许您可以使用falsethank省略META-INF生成,但我认为问题在于,在运行maven clean package目标时,Patient.class无法导入到JAXBDemo.class中-交付的结构不允许导入