Я использую Maven 3.x (3.2.5), и мой проект использует maven-antrun-plugin
с дополнительными зависимостями.Хотя я понимаю принцип, лежащий в основе, у меня есть проблемы с пониманием использования <scope />
в этом случае:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<!-- executions -->
<dependencies>
...
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.17</version>
<scope>runtime</scope>
</dependency>
...
</dependencies>
</plugin>
Я зависел от mysql-connector-java
с областью действия runtime
, тогда как другие зависимости используют значение по умолчанию (compile
) Область применения.
maven-antrun-plugin
используется, чтобы что-то делать с различными базами данных (отсюда и зависимость).Однако, поскольку проект не привязан к конкретному драйверу JDBC, драйвер не добавляется в зависимости проекта.Задача Ant запускается с несколькими драйверами в качестве зависимостей, поскольку может использовать такую базу данных в зависимости от конфигурации (например: один может использовать jdbc:mysql
, другой jdbc:oracle:thin
и т. Д.).
Насколько я понимаю, поскольку плагин запускается, maven игнорирует область действия.
Это правда?
Примечание. Я прочитал документацию Maven и этот момент не обсуждается.Я почти уверен, что это игнорируется, но я хотел бы получить представление раньше.