2009-06-20 114 views
12

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

回答

8

您应该可以通过将gmaven插件添加到您的maven pom.xml来编译您的代码。它会生成groovy代码的Java存根,以处理您正在处理的跨语言引用的类型。我使用它很多,它工作得很好。

0

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

+0

-1有一个联合的Groovy-Java编译器。 – 2009-06-20 21:27:51

11

是的,只需使用GMaven。由于它是一个联合编译器,因此它会自动管理您的java以适应Groovy和Groovy到Java的依赖关系。

简单地说,你将需要:

  • 在您pom.xmlgmaven-plugin;
  • 保持您的groovy课程在src/main/groovysrc/test/groovy;
  • 将gmaven插件绑定到相关的生命周期阶段。

欲了解更多详情,请参阅building groovy projects