У меня есть два проекта Maven, которые я добавил в один проект Intellij Idea как два модуля. Проект В зависит от проекта А.
Вот упрощенные версии их файлов pom.xml.
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.group</groupId>
<artifactId>a</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
</dependencies>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.group</groupId>
<artifactId>b</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>com.group</groupId>
<artifactId>a</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
Проект А легко компилируется, поскольку он не имеет никакой зависимости. Но Project B зависит от проекта A, и поскольку я не говорю maven, как его найти, он не может быть скомпилирован с mvn package
. Но если я не ошибаюсь, это было возможно с помощью меню Intellij Idea "Meven Projects", поскольку для Intellij Idea оба проекта известны.
Но прямо сейчас, по какой-то неизвестной причине, я не могу скомпилировать проект B даже в Intellij Idea. Когда я это делаю, он подсказывает:
[ERROR] Failed to execute goal on project b: Could not resolve dependencies for project com.group:b:jar:1.0-SNAPSHOT: Could not find artifact com.group:a:jar:1.0-SNAPSHOT -> [Help 1]
Мой вопрос в том, как включить один проект в другой как его зависимость? Обратите внимание, что я не ищу локальную инъекцию зависимостей в maven, так как я хочу, чтобы это работало в будущем, когда я загружаю свои пакеты в какой-то репозиторий.
Ваш проект B зависит от проекта A, и вы уже указали это как зависимость в вашем файле pom. Единственная причина, по которой проект B не может найти проект A, может быть вызван тем, что артефакт проекта не установлен в вашем локальном репозитории.m2. Таким образом, вам нужно сначала выполнить mvn-чистую установку вашего проекта A, которая создаст артефакт в вашем хранилище maven. Затем вы должны использовать артефакт A в проекте B.