Зависимость Maven и путь к классу затмения - PullRequest
1 голос
/ 30 ноября 2011

Я пытался найти существующие вопросы, но не смог найти ни одного - кажется, что мой вопрос довольно прост, но, вероятно, потому что он довольно конкретный, я не могу найти ответы в Stackoverflow / Google.

В любом случае - у меня есть несколько проектов с Maven, которые зависят друг от друга. В некоторых случаях я хочу, чтобы зависимость была в JAR, а не в зависимости от проекта (т. Е. Я хочу, чтобы зависимость была частью «Библиотеки» в Eclipse, а не «Проекты» в пути сборки).

Ваша помощь очень ценится! Спасибо

Ответы [ 3 ]

3 голосов
/ 27 октября 2012

Чтобы получить указанные проекты в том же рабочем пространстве, что и файлы jar, вместо проектов, мы можем использовать параметр VM -Declipse.useProjectReferences = false или добавить его в файл pom.

    <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-eclipse-plugin</artifactId>
    <version>2.9</version>
    <configuration>
      <useProjectReferences>false</useProjectReferences>
    </configuration>
  </plugin>

См. URL для получения дополнительной информации.

2 голосов
/ 30 ноября 2011

В свойствах вашего проекта в Eclipse выберите Maven. Существует флажок «Разрешить зависимости от проектов рабочей области». Если это проверено, то используются проекты Eclipse. В противном случае файлы jar используются как с другими зависимостями maven, при условии, что у вас есть зависимости в вашем pom.xml как обычно.

РЕДАКТИРОВАТЬ: Если ваш проект не является проектом Maven, вам придется создать Jar вне Eclipse и добавить его как JAR или внешний JAR, как обычно. Если проект представляет собой проект Maven, то вышеупомянутое будет работать.

0 голосов
/ 30 ноября 2011

Скажите Client-Project зависит от Services-Project. Если Services-Project генерирует JAR. В Client-Project POM вы бы выразили зависимость от этого JAR. Это было бы что-то вроде:

<dependency>
  <groupId>group.id.of.services.project.goes.here</groupId>
  <artifactId>artifact.id.of.services.project.goes.here</artifactId>
  <version>version.number.of.services.jar</version>
</dependency>

Если проект служб генерирует JAR с именем com.mycompany.services-1.3.jar, зависимость будет:

<dependency>
  <groupId>com.mycompany</groupId>
  <artifactId>services</artifactId>
  <version>1.3</version>
</dependency>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...