如何在m2e / Indigo下的Eclipse构建路径中获取JAXB生成的源代码?

时间:2011-06-24 13:05:18

标签: m2eclipse m2e maven-jaxb2-plugin

在Helios / m2eclipse下,当我生成jaxb源时,当我执行“更新项目配置”时,它们将被放在Eclipse源路径上。

Indigo / m2e(2011年6月22日首次发布)不会发生这种情况。我需要做些什么来解决这个问题?

我正在使用标准的maven-jaxb2-plugin,版本0.75。

5 个答案:

答案 0 :(得分:25)

在Eclipse中,转到“安装新软件”添加软件站点:http://bitstrings.github.com/m2e-connectors-p2/releases/

选择“适用于jaxb2的m2e连接器”

安装完该插件后,jaxb2插件应该与新版本的m2e正确集成。

此信息来自:https://bugs.eclipse.org/bugs/show_bug.cgi?id=350299

答案 1 :(得分:6)

好吧,你需要右键点击“target / generated-sources / xjc并选择类似”Build Path - >用作源文件夹“

答案 2 :(得分:2)

作为替代解决方法,如果无法使m2e连接器正常工作,可以使用build-helper-maven-plugin将生成的源添加到构建路径中:

<build>
  ...
  <plugins>
    ...
    <plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>build-helper-maven-plugin</artifactId>
      <version>1.7</version>
      <executions>
        <execution>
          <id>add-source</id>
          <phase>generate-sources</phase>
          <goals>
            <goal>add-source</goal>
          </goals>
          <configuration>
            <sources>
              <source>target/generated-sources/xmlbeans</source>
            </sources>
          </configuration>
        </execution>
      </executions>
    </plugin>
    ...     
  </plugins>
  ... 
</build>

答案 3 :(得分:1)

在等待修复此问题时,我正在使用以下临时解决方法:

我们在单独的maven模块中有jaxb-plugin和生成的类。在eclipse中,我只能在该模块上“禁用Maven nature”。然后我可以在我们的大型maven项目的其余部分使用带有m2eclipse的Indigo,它将取决于jaxb模块的jar(必须从命令行构建)。这对我很有用,因为我们的项目已经以这种方式组织起来。

答案 4 :(得分:0)

对于那些患有maven-jaxb2-plugin且Eclipse没有附加源的人。作者已从Sun to the Glassfish JAXB artifacts切换,并且依赖关系树已更改。以前许多JAR被遮蔽到jaxb-xjc而没有可传递的JAR。现在,这已被删除,之前对tools.jar的传递依赖性破坏了Eclipse的执行。使用JDK VM启动Eclipse,它将起作用。 (测试了最新的Maven 3.3.9,Maven JAXB2插件0.13.1,最近的m2e JAXB2连接器和Eclipse Mars.2)