Область действия import
предназначена только для использования внутри раздела dependencyManagement
.(Эта концепция также называется спецификацией в maven.) Из документации maven :
Эта область поддерживается только взависимость типа pom в разделе .
У вас есть несколько вариантов для достижения желаемого:
- Правильно используйте механизм импорта:добавление зависимости
import
scoped в секцию dependencyManagement
в pom-using-import.Затем вы можете удалить раздел <dependencies>
в «pom-to-be-import».Каждый «импортирующий pom» должен явно перечислить все зависимости в разделе <dependencies>
, но вам не нужно указывать версию (или область действия).
<dependencyManagement>
<dependency>
<groupId>com.example.maven.import</groupId>
<artifactId>pom-to-be-imported</artifactId>
<version>1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependencyManagement>
Если все ваши «импортирующие poms» нуждаются в одинаковых зависимостях, вы можете использовать наследование, объявив «pom-to-be-import» как родительский вместо использования import:
<project ...>
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.example.maven.import</groupId>
<artifactId>pom-to-be-imported</artifactId> <!-- Rename it to e.g. 'parent' -->
<version>1</version>
<relativePath>../pom-to-be-imported/pom.xml</relativePath>
</parent>
<artifactId>pom-using-import</artifactId>
Альтернатива 2, вероятно, ближе всего к тому, что вы хотите.