игнорировать maven-зависимость во время определенной фазы выполнения - PullRequest
1 голос
/ 15 сентября 2010

У меня есть (настраиваемый) встроенный модуль запуска Jetty, который я использовал для разработки / тестирования моего веб-приложения (до перехода на Maven).

Я могу обмануть m2eclipse, поместив управляемые зависимости maven в библиотеки для файла war на путь к классу запуска (при запуске из eclipse). Я сделал это, создав две зависимости для одного и того же артефакта: одну типа "война" и одну типа "jar" (зависимость "jar" заставляет m2eclipse делать то, что я хочу).

Однако плагин maven-assembly-launcher не запускается, когда не удается найти банку для военного проекта.

Q: Могу ли я сказать maven игнорировать зависимость jar при запуске цели пакета?

более подробный фон: У меня есть проект webapp.war и проект jetty-launcher, прежде чем я перейду в maven; У меня была зависимость от проекта затмения, так что у программы запуска были все военные зависимости во время выполнения. Все вышло из идеала (без перекомпоновки боевого файла), необходимого для проверки изменений.

После перехода в maven этот подход был перехвачен, так как m2eclipse не знает библиотек, от которых зависит jar (так как они предназначены для войны).

Ответы [ 2 ]

1 голос
/ 15 сентября 2010

Я справился с этим, используя отдельный файл .m2 / settings-eclipse.xml (для eclipse), где я переопределяю тип зависимости по умолчанию.поэтому в моем модуле запуска POM у меня есть:

<dependency>
  <groupId>com.myco</groupId>
  <artifactId>my-server</artifactId>
  <version>${project.version}</version>

  <!-- here we want eclipse to see "jar" but command line to see "war" -->
  <type>${jetty.launcher.workaround}</type>
</dependency>

Я все еще хотел бы знать, существует ли прямой способ решения исходной проблемы.

0 голосов
/ 27 февраля 2013

Возможно, уже слишком поздно, но это может быть полезно для кого-то:

<optional>true</optional>
</dependency>

Итак, добавьте <optional>true</optional> к вашему pom.xml

...