grails - 为什么Grails会采用jar依赖性而不是现有的maven项目依赖性?

标签 grails

我正在使用IntelliJ IDEA 10.0.2(支持groovy / grails),maven 2.2.1和grails 1.3.6。

我们有一个大型的Maven项目,它依赖于许多其他的Maven项目。假设工作空间结构如下:

  • 后端项目(Java项目,没有更多项目依赖项)
  • 输出项目(Java项目,没有其他项目依赖项)
  • frontend-project(Grails项目,同时依赖于后端和输出)

  • 这意味着,在我的前端项目的pom.xml中,我定义了2个项目依赖项:

    例如
    <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应用程序,则不会考虑更改。我必须在本地发布更改的 Artifact ,然后在运行该应用程序之前由grails项目再次对其进行解析,以使其生效。
    这告诉我grails项目仅依赖于Maven存储库中的项目依赖项jar,而不关心工作空间中任何现有的项目依赖项“源”。

    一定要那么复杂吗?如果是这样,为什么呢?

    请注意,如果我的前端项目是一个Spring Web项目,那么更改将在IDEA中看到,并且tomcat甚至会动态地重新加载更改。

    请注意,当IDEA识别出经过改造的grails项目时,它将不再使用以下命令运行grails项目:“grail run-app”,但使用以下更为复杂的版本:“mvn grails:exec -Dcommand = run-app”。不知道这是否有任何意义。

    谢谢!
    斜线先生

    最佳答案

    Maven总是从存储库(本地,然后是远程等,取决于pom.xml配置)中选择jar文件。

    考虑一下:您的主项目将如何知道后端项目或输出项目文件的位置?

    如果要直接依赖,则从pom.xml中删除它,并修改项目构建路径以将项目的输出直接添加到主项目中。在Eclipse中,打开主项目的属性页=>构建路径=>项目=>添加。

    关于grails - 为什么Grails会采用jar依赖性而不是现有的maven项目依赖性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5106566/

    相关文章:

    grails - 如何使我的方法处理来自另一个来源的响应数据作为重定向URL

    groovy - Grails 1.2.x脚本不起作用

    jquery - 将参数传递给 shown.bs.modal function()

    grails - MarkupBuilder-如何添加表td属性 “title”

    json - grails,在将域列表呈现为 JSON 时禁用急切获取

    Grails 自定义身份验证提供程序

    java - Grails - Spring Security 无法与 Mysql 8 一起使用

    hibernate - hibernate grails顺序更改结果数

    grails - 使用Grails和Acegi插件捕获登录/注销和登录尝试

    Grails:如何生成对人类友好的、确保唯一的随机数