12

我有一种情况,我的一些 groovy 代码引用了我的 java 文件,但我也有不同的 java 文件引用相同的 groovy 代码。尝试在 maven 中编译时,我需要在 java 之前或之后编译 groovy,这不会真正起作用,因为 groovy 代码依赖于一些 java 文件,而不同的 java 文件依赖于 groovy 代码。有没有办法处理这种依赖?

4

3 回答 3

11

是的,只需使用GMaven。由于它是一个联合编译器,它会自动管理你的 java 到 groovy 和 groovy 到 java 的依赖关系。

简而言之,您将需要:

  • 包括gmaven-plugin在你的pom.xml;
  • 将你的 groovy 类保持在src/main/groovyor下src/test/groovy
  • 将 gmaven 插件绑定到相关的生命周期阶段。

有关更多详细信息,请参阅构建 groovy 项目

于 2009-06-20T21:27:25.353 回答
8

您应该能够通过将gmaven插件添加到您的 maven pom.xml 来编译您的代码。它会为您的 groovy 代码生成 Java 存根,以处理您正在处理的跨语言引用类型。我经常使用它,而且效果很好。

于 2009-06-20T21:28:30.810 回答
0

您可以将代码分层并让较低层调用较高层,但反之亦然。例如,在 Web 应用程序中,您可以有一个视图层、一个服务层和一个持久层。视图层调用服务层,服务层调用持久层,但是持久层永远不会调用服务层或视图层。如果您希望 groovy/java 代码存在于同一层中,请确保一个调用另一个,但它们不会相互调用。底线是您应该避免双向依赖。

于 2009-06-20T21:23:22.087 回答