Автоматически получать информацию о лицензии всех зависимых артефактов с открытым исходным кодом в коммерческом проекте - PullRequest
0 голосов
/ 30 декабря 2018

В нашей компании есть много серверных приложений JEE, которые развернуты в артефакте jfrog.Каждый из этих проектов содержит некоторую зависимость от других источников репозитория maven, которые, в свою очередь, имеют много других зависимостей.Поэтому, когда я использую одну из зависимостей, например,

<project>
  ...
  <dependencies>
    <dependency>
      <groupId>sample.ProjectA</groupId>
      <artifactId>Project-A</artifactId>
      <version>1.0</version>
      <scope>provided</scope>          
    </dependency>
  </dependencies>
</project>

Sample.ProjectA.Project-A может иметь некоторые коммерческие зависимости.Я вижу, что maven использует поле лицензий для ввода информации о лицензии

  <licenses>
    <license>
      <name>Apache License, Version 2.0</name>
      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
      <distribution>repo</distribution>
    </license>
  </licenses>

. Я также нашел способ получить лицензии maven с помощью плагина информации о отчетах maven-project-info-reports-plugin

Теперь было бы здорово, если бы Maven предупредил о наличии коммерческих лицензий.Есть ли возможность сделать это?

1 Ответ

0 голосов
/ 30 декабря 2018

Существует несколько плагинов Maven, которые проверяют лицензии, используемые зависимостями проекта:

  • "ayoy-license-verifyier-maven-plugin" ( reference )
  • "khmarbaise / Maven-License-Verifier-Plugin" ( reference )

Однако при таком подходе возникают проблемы:

  • Некоторые артефакты Maven не объявляют лицензию в своих файлах POM.
  • Эти плагины полагаются на <license> в POM зависимости, используя хорошо известные имена или URL-адреса для лицензий.К сожалению, они не стандартизированы (как показано в примере файлов «licenses.xml»).Вам решать, как с этим справиться.
  • Эти плагины не пытаются классифицировать лицензии как «коммерческие» или «некоммерческие».Вы должны решить это для себя.
...