У меня есть два проекта - A и B, где A зависит от B. Я упаковываю B как jar и развертываю его на сервере maven (artifactory), а затем включаю этот jar как обычную зависимость от проекта A в файл pom. jar файла B отображается в Maven Dependencies проекта A, но зависимости проекта B не отображаются в иерархии зависимостей. Это вызывает исключение class not found для зависимостей B.
Однако мой проект A и B находится в той же рабочей области eclipse. Когда я открываю проект B, проект A начинает ссылаться на проект B из рабочей области, а не из удаленного репозитория, и все работает хорошо.
Этот вопрос - Maven. Переходные зависимости ближе всего к моей проблеме, но зависимости моего проекта B НЕ являются необязательными.
Что здесь не так?
POM для проекта B
<?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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.myapp</groupId>
<artifactId>utils</artifactId>
<version>1.0.0-RELEASE</version>
<packaging>jar</packaging>
<name>utils</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<!-- Following doesn't get added to project A -->
<dependencies>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
</dependencies>
</project>
POM для проекта A
<?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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.myapp</groupId>
<artifactId>core-app</artifactId>
<version>1.0.0-RELEASE</version>
<packaging>jar</packaging>
<name>core-app</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>com.myapp</groupId>
<artifactId>utils</artifactId>
<version>1.0.0-RELEASE</version>
</dependency>
</dependencies>
</project>
Я использую архетип быстрого запуска maven. Структура моих проектов (которую я упаковываю как jar):
project-name
src/main/java
src/test/java
pom.xml