如果没有 maven clean,带有 JAXB2 插件的 Maven 项目将无法工作
Maven project with JAXB2 plugin does not work without maven clean
如果我 运行
我使用 JAXB2 插件的 Maven 项目可以正常工作
mvn clean install
但是如果我跳过 clean 和 运行
它总是会失败
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 模块中,我是否正确?或者还有其他方法吗?
jaxb2-maven-plugin v2.2 中存在错误 https://github.com/mojohaus/jaxb2-maven-plugin/issues/35。
此错误已在 v2.3
中修复
如果我 运行
我使用 JAXB2 插件的 Maven 项目可以正常工作mvn clean install
但是如果我跳过 clean 和 运行
它总是会失败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 模块中,我是否正确?或者还有其他方法吗?
jaxb2-maven-plugin v2.2 中存在错误 https://github.com/mojohaus/jaxb2-maven-plugin/issues/35。 此错误已在 v2.3
中修复