有人可以告诉我如何配置maven以便从target/hibernate3/generated-sources
目录编译源代码吗?我已经阅读了this和其他帖子,但它们似乎没有解决我的问题(这看起来确实很简单)。
我已经使用自下而上的方法来为cfg.xml,hbm.xml和POJO生成hibernate配置(即从现有数据库模式中自动生成完整的hibernate配置)。我也只使用标准的maven
和hibernate3-plugin
目录布局。但是,当我的源位于mvn compile
时,在命令行中执行src/main/java
,/target/hibernate3/generated-sources
中生成的源只有来自src/main/java
的源被编译并复制到target/classes
{1}}。我不希望在src/main/java
中生成源代码,因为我希望mvn clean
清除它们。
我想仅使用command-line
,plugins
和pom.xml
来解决问题。有没有办法配置maven-compiler-plugin
这样做?还是有另一种方式?
关心并感谢您的帮助。
答案 0 :(得分:4)
惯例是在target/generated-sources/<generator>
生成代码,所以在你的情况下,我会在target/generated-sources/hibernate3
生成源代码(很遗憾hibernate3插件默认不遵循这个约定)。无论如何,事情应该有效,实际上,我在this previous answer发布的POM确实如此(我重新运行了我的示例项目,它确实有效)。你能成为MHIBERNATE-104的受害者吗?老实说,我很困惑。
作为一种变通方法,您可以使用Build Helper Maven Plugin及其build-helper:add-source
目标将目录添加为源目录。有关配置示例,请参阅Usage页面。
我正在使用你在这里提出的pom,只是没有插入默认的构建生命周期(没有执行)。
这一定是问题的原因:如果hibernate3:hbm2java
不是构建生命周期的一部分,它就没有机会将输出目录注册为源文件夹。因此,Maven在“正常构建”期间并未意识到它,并且会忽略它。