Я совершенно новый в Maven.
Я пытаюсь сделать следующее:
Предположим, что мы имеем к проектам А и В. Проект B должен использовать некоторые classfrom_A из кувшина, импортированных из Здесь приведены определения: pom.xml проекта А:Maven: Использование класса из импортированной банки
<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>A_Group</groupId>
<artifactId>A_Artifact</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
<name>A_Project</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
</project>
Здесь pom.xml проекта B (зависит от А):
<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>B_Group</groupId>
<artifactId>B_Artifact</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
<name>B_Project</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>A_Group</groupId>
<artifactId>A_Artifact</artifactId>
<version>1.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>
Вот фрагмент кода из проекта B:
import packageFromA.*;
public class App {
public static void main(String[] args) {
classFromA ca = new ClassFromA; //from packageFromA
ca.someFunction();
}
}
Я бегу МВН установки для А, то для B без ошибок Но при попытке запустить код выше от IntelliJ Idea, получил ошибку: Ошибка: (3, 18) Java: пакет packageFromA не существует
Как я понимаю из maven docs: «зависимости от компиляции доступны во всех классах, и они упакованы». Но кажется, что импортный класс все еще не был разрешен. Чего не хватает в определениях? Заранее спасибо
UPDATE: при запуске из IntelliJ проблема была решена после повторного импорта. Но когда я бегу из командной строки
java projectB
Нужно ли явно задавать путь к классам импортированных банок? Если да, то мне нужно указать на местоположение i в локальном репозитории maven (.m2/repository)? Благодаря
'pom.xml' похоже, хорошо, это скорее проблема IDE. Вы проверили сгенерированные 'jar'? – meskobalazs
Спасибо за ответ. Сгенерированная банка для проекта A содержит файл classFromA.class. Должна ли mvn устанавливать путь класса обновления? –
Но содержит ли проект B файл проекта 'jar'? Если это так, то это проблема IDE. – meskobalazs