2012-12-22 66 views
0

我有一个Maven项目,它依赖于生成的源文件。这些源码需要由另一个maven pom构建的java程序生成。 (在这种情况下,源码由greendao源码生成器生成,但它们可以由任何通用java可执行文件生成)。假设我想使用reactor来构建这两个子模块,我怎样才能确保第一个模块被构建并执行并生成其源文件以包含在第二个模块中?Maven pom为另一个pom生成类文件

+0

你有模块A,它由greendao生成类。您安装/部署它,并将其作为依赖关系包含到B项目中。你能证实吗? –

+0

关闭。当我安装/部署它时,我有模块A构建了greendao类生成器。然后,我从模块A运行生成器以生成模块B的源代码。模块B由生成的源代码和仅生成的源代码组成。 – emmby

+0

你有没有类似[cxf-codegen-plugin](http://cxf.apache.org/docs/maven-cxf-codegen-plugin-wsdl-to-java.html)?它从wsdl源文件生成,并将其作为“”文件夹的来源。如果是,你可以使用模块A作为maven插件(当然你需要编写必要的类)。或者第二个解决方案是在阶段生成源中运行它。您可以使用[build-helper-maven-plugin](http://mojo.codehaus.org/build-helper-maven-plugin/usage.html)将新的源文件夹包含在项目中。我更喜欢在其他maven模块中生成源代码,并将其作为依赖包含在其中。 –

回答

0

模块A生成源代码。模块B依赖于模块A.如果你认为模块B依赖于模块B的模块A中的模块A,我认为反应堆会首先确定它需要建立模块A.

+0

当然,这是问题的一部分。但是,如何告诉模块A模块B中的目标目录生成文件?似乎没有一个好方法来做到这一点。 – emmby

+0

如果模块A生成源,模块B应在模块B依赖于模块A时获取源。否则,您如何/为什么要设计它? –

+0

如何?来源,而不是类文件 – emmby