谁能告诉我如何配置maven,使其也能编译target/hibernate3/generated-sources目录中的源代码?我已经阅读了this和其他帖子,但它们似乎并没有解决我的问题(这确实看起来微不足道)。
我使用了自下而上的hibernate配置方法来生成cfg.xml、hbm.xml和POJO (即从现有的数据库模式自动生成完整的hibernate配置)。我也只使用标准的maven和hibernate3-plugin目录布局。但是,当我的源代码在src/main/java中,而生成的源代码在/target/hibernate3/generated-sources中时,在命令行中执行mvn compile时,只有来自src/main/java的源代码会被编译并复制到target/classes中。我不想在src/main/java中生成源代码,因为我想让mvn clean清理它们。
我只想用command-line,plugins和pom.xml来解决这个问题。有没有办法将maven-compiler-plugin配置为这样做?还是有别的办法?
致以问候并感谢您的帮助。
发布于 2010-05-27 05:13:42
约定是用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在“正常构建”期间不会意识到这一点,并将忽略它。
https://stackoverflow.com/questions/2916790
复制相似问题