我有一个基于Maven的项目,我尝试添加一些由“jaxb2-maven-plugin”Maven插件自动生成的JAXB类。然而,我的第一个切我有一个循环依赖循环:在Maven项目中管理JAXB生成的类
- 由于这些JAXB类尚未生成,我引用它们的其他来源有编译错误。
- 由于这些其他源具有编译错误,因此不会生成这些JAXB类。
好像有解决这个两个明显的可能性:
- 评论时的破环参数,使该项目建立和JAXB类是自动生成的。然后将生成的来源
/target
复制到/src/main/java
中,以便引用它们不会导致编译错误。 - 创建一个完全独立的项目,只包含JAXB的东西。将其作为依赖项包含在我的主项目中。
我在这里错过了什么吗?选项#1看起来是平淡无味的......那只是不能是人们使用JAXB的方式。选项#2似乎更合理,但仍然效率低下且麻烦。为了使用JAXB,我真的必须承担一个完全独立的项目的开销吗?
开发人员在Maven插件生成的同一个项目中使用了哪些更优雅的方法来引用JAXB生成的类?
UPDATE:按要求,这里是我的POM的相关部分:
<build>
<plugins>
<plugin>
<!-- configure the compiler to compile to Java 1.6 -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxb2-maven-plugin</artifactId>
<version>1.4</version>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>xjc</goal>
</goals>
</execution>
</executions>
<configuration>
<!-- The name of your generated source package -->
<packageName>com.mypackage</packageName>
</configuration>
</plugin>
</plugins>
</build>
当我运行mvn clean package
,我看到了/target
子目录下生成我JAXB来源。但是,那些生成的源不会自动添加到编译阶段的类路径中。
POST分辨率更新:事实证明,我的编译问题有更多的事情要做,我是在Eclipse中运行的事实,它的Maven的集成有一些问题,“JAXB2 - Maven的插件”。有关该问题及其解决方案的更多详细信息,请参阅this StackOverflow question。
请张贴POM的相关部分。 – jiggy 2012-08-15 15:42:55