【发布时间】:2018-08-13 10:13:58
【问题描述】:
这个问题,只是为了确保我的解释是正确的:
我正在使用 Mojohaus jaxb2-maven-plugin 从 .xsd 文件生成 java 类,默认情况下它会将它们放在目标/生成源中
现在,我想在源代码控制中跟踪这些类(目标当然不包括在内),有一天我可能会用注释或一行代码稍微定制一个,我什至可能会更改我的类生成插件, 那我把这些类和包复制到 src/main/java 怎么办
当我尝试编译时,这让 Maven 感到不安,因为他将“目标/生成源”视为源目录,并且他两次找到所有类。据我了解,我可以在源目录中排除类,但我不能从 Maven 构建中删除源目录,对吗?
所以唯一的解决方案是配置我的 jaxb2 插件以在其他地方生成类,对吧?
更新:
好吧,这不像我想的那样工作,如果我更改了我的 jaxb 插件的 outputDirectory,它仍然被 Maven 作为源目录包含在内,我不知道为什么。
<configuration>
<outputDirectory>${project.build.directory}/tatata/jaxb</outputDirectory>
</configuration>
更新 2 :解释是插件在构建的 generate-sources 阶段将 outputDirectory 添加为 maven 源目录,它不是可选的或可定制的。
【问题讨论】:
-
请说明您使用的是哪个插件,
maven-jaxb2-plugin或 Codehausjaxb2-maven-plugin。 -
您的意思比原始问题中的“我正在使用 Mojohaus jaxb2-maven-plugin 生成 java 类”更清楚? ;) Codehaus 已于 3 年前关闭:mojohaus.org
-
是的,稍微清楚一点。 Mojohaus 插件的名称是
maven-jaxb2-plugin,而您指定了jaxb2-maven-plugin,这是 Codehaus 插件的名称。所以你可以理解@lexicore 的澄清请求。即使 Codehaus 关闭,codehaus 插件仍然可用。也可以在这里查看:stackoverflow.com/a/9199036/48082
标签: maven jaxb maven-3 jaxb2-maven-plugin