我正在使用IntelliJ IDEA 10.0.2(支持groovy / grails),maven 2.2.1和grails 1.3.6。
我们有一个大型的maven项目,这取决于许多其他的maven项目。假设工作空间结构如下所示:
这意味着,在我的前端项目的pom.xml中,我定义了2个项目依赖项:
e.g。
<dependency>
<groupId>com.company.project</groupId>
<artifactId>backend-project</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.company.project</groupId>
<artifactId>output-project</artifactId>
<version>${project.version}</version>
</dependency>
假设我在输出或后端项目中更改了一些Java Source。当我 现在运行grails应用程序,然后它不会考虑更改。我必须在本地发布更改的工件,然后在运行应用程序之前由grails项目再次解析它以使其生效。 这告诉我grails项目只取决于maven存储库中的项目依赖项jar,并不关心工作区内任何现有的项目依赖“源”。
是否必须如此复杂,如果是这样,为什么?
请注意,如果我的前端项目是一个spring web项目,那么更改将在IDEA中看到,tomcat甚至会动态重新加载更改。
请注意,当IDEA识别Maven化Grails项目,它不会与运行Grails项目:“大盘运行的应用程序”了,但有一个更复杂的版本:“MVN的Grails:EXEC -d命令=运行的应用程序” 。不知道这是否有任何相关性。
谢谢! 斯拉什先生
答案 0 :(得分:0)
Maven总是从存储库中获取jar文件(本地然后远程等等,具体取决于你的pom.xml配置)。
考虑一下:您的主项目如何知道后端项目或输出项目文件的位置?
如果您想要直接依赖,那么将其从pom.xml中删除并修改项目构建路径以直接将项目的输出添加到主项目中。在Eclipse中打开主项目的属性页面=&gt; build path =&gt; projects =&gt;加。