Почему Grails использует зависимости jar вместо существующих зависимостей проекта maven? - PullRequest
2 голосов
/ 24 февраля 2011

Я использую IntelliJ IDEA 10.0.2 (с поддержкой groovy / grails), maven 2.2.1 и grails 1.3.6.

У нас большой проект maven, который зависит от многих других проектов maven,Допустим, структура рабочей области выглядит следующим образом:

  • backend-project (проект Java, без дополнительных зависимостей проекта)
  • output-project (проект 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-источник в выходном или внутреннем проекте.Теперь, когда я запускаю приложение grails, оно не учитывает изменения.Я должен опубликовать измененный артефакт локально, а затем снова разрешить его в проекте grails перед запуском приложения, чтобы он вступил в силу.Это говорит мне о том, что проект grails зависит только от jar-файлов зависимостей проекта в репозитории maven и не заботится о каких-либо существующих «исходниках» зависимости проекта в рабочей области.

Должно ли это быть настолько сложным, и если да, то, Зачем?

Обратите внимание, что если мой внешний интерфейс был весенним веб-проектом, изменения будут видны в IDEA, и tomcat даже перезагрузит их динамически.

Обратите внимание, что когда IDEA распознает проект mavenized grails, он больше не будет запускать проект grails с: "grail run-app", а с более сложной версией: "mvn grails: exec -Dcommand = run-приложение".Не знаю, имеет ли это какое-либо отношение ..

Спасибо!Мистер Слэш

1 Ответ

0 голосов
/ 10 мая 2011

Maven всегда выбирает файлы jar из репозиториев (локальных, а затем удаленных и т. Д. В зависимости от конфигурации pom.xml).

Подумайте об этом: как ваш главный проект узнает, где находятся файл внутреннего проекта или файлы выходного проекта?

Если вы хотите иметь прямую зависимость, удалите ее из pom.xml и измените путь сборки проекта, чтобы напрямую добавить выходные данные проектов в ваши основные проекты. В Eclipse откройте страницу свойств основного проекта => путь сборки => проекты => добавить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...