如果没有maven clean,使用JAXB2插件的Maven项目将无法运行

时间:2016-10-05 15:02:15

标签: java maven jaxb2-maven-plugin

如果我运行

,那么使用JAXB2插件的My Maven项目可以正常运行
mvn clean install

但如果我跳过干净并运行

,它总是会失败
mvn install

在这种情况下,生成的类不再生成,这是正确的:

[INFO] No changes detected in schema or binding files - skipping JAXB generation.

但是后来我得到一个编译错误,当编译了这个Maven项目中的其他静态Java源代码时,无法找到生成的类和包:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.2:compile (default-compile) on project [...]: Compilation failure: Compilation failure:
[ERROR] [...] package [...] does not exist
[ERROR] [... ]cannot find symbol

这是我的pom.xml的相关部分(其余部分只是依赖项):

<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxb2-maven-plugin</artifactId>
<version>2.2</version>
<executions>                    
    <execution>
        <id>xjc-core</id>
        <goals>
            <goal>xjc</goal>
        </goals>
        <configuration>
            <sources>
                <source>${project.basedir}/src/main/xsd/core</source>
            </sources>
            <packageName>com.example.core</packageName>
            <clearOutputDir>false</clearOutputDir>
        </configuration>
    </execution>
    <!-- ... and more <execution>  -->
</executions>               

我是否正确,唯一的解决方案是将静态源和生成的源分成不同的Maven模块?或者还有其他方法吗?

1 个答案:

答案 0 :(得分:2)

jaxb2-maven-plugin v2.2 https://github.com/mojohaus/jaxb2-maven-plugin/issues/35中存在错误。 此错误已在v2.3中修复