Сортировка (топологическая) maven зависимостей - PullRequest
1 голос
/ 10 января 2011

У нас есть несколько артефактов SNAPSHOT, которые нам нужно выпустить более или менее одновременно. Мы искали плагин, который бы выполнял сортировку и затем перечислял зависимости (зависимость: список, кажется, дает их в алфавитном порядке, зависимость: дерево не особенно удобно для наших целей).

Мы хотим сделать сортировку, чтобы мы могли сначала выпустить «наименее зависимые» артефакты, а затем те, которые «более зависимы».

Кто-нибудь еще сталкивался с такой необходимостью?

1 Ответ

0 голосов
/ 20 февраля 2011

Я просто должен был сделать это в плагине сам.Люди в списке Maven, казалось, не знали, что это будет полезно.Вот как я это сделал: http://maven.40175.n5.nabble.com/Topologically-sorting-dependencies-tp3384898p3387803.html

Вкратце, в плагине с разрешением зависимости, установленным на test:

  1. Запросите MavenProject о своих артефактах через getArtifacts() call.
  2. Попросите введенного MavenProjectBuilder построить MavenProject для каждого Artifact.
  3. Вооружившись списком MavenProject s, позвоните ProjectSorter с этим списком.
  4. Полученный список MavenProject s будет топологически отсортирован.
  5. Теперь для каждого из этих MavenProject s получите его определяющее значение Artifact с помощью метода getArtifact().
  6. Используйте эти Artifact groupId и artifactId для создания разделенного двоеточиями ключа.
  7. Используйте этот ключ для поиска разрешенного Artifact в вашем реальном MavenProjectКарта артефактов.
  8. Теперь у этого артефакта будет заполнено свойство getFile(), и вы сможете делать с ним все, что вам нужно.

Это невероятно громоздко, но я нене вижу другого способа сделать это.Я надеюсь, что это поможет вам.

...