У меня есть проект с несколькими модулями.
Uaaper - родительский pom
UaaPersi - это ребенок.
UaaClient - это третье приложение, использующее jar, созданное UaaPersi
Я успешно установил банку UaaPersi в своем локальном репо, используя команду mvn install.
Теперь у меня есть UaaClient, который использует банку UaaPersi. Ниже показана зависимость для UaaClient
<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>UaaClient</groupId>
<artifactId>ThirdPartyApp</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>ThirdPartyApp</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<!-- this jar is generated by me -->
<dependency>
<groupId>Uaaper</groupId>
<artifactId>Uaapersi</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
Когда я затмеваю: eclipse
Вся зависимость, связанная с jar Uaapersi-0.0.1-SNAPSHOT, включена в путь класса для проекта UaaClient. Но в jar Uaapersi-0.0.1-SNAPSHOT в пути класса отсутствует.
Когда я смотрю на путь класса, это выглядит так:
<classpath>
<classpathentry kind="src" path="src/test/java" output="target/test-classes" including="**/*.java"/>
<classpathentry kind="src" path="src/main/java" including="**/*.java"/>
<classpathentry kind="output" path="target/classes"/>
<classpathentry kind="var" path="M2_REPO/javax/validation/validation-api/1.1.0.Final/validation-api-1.1.0.Final.jar"/>
<classpathentry kind="var" path="M2_REPO/javax/inject/javax.inject/1/javax.inject-1.jar"/>
<classpathentry kind="var" path="M2_REPO/javax/mail/mail/1.4.3/mail-1.4.3.jar"/>
<classpathentry kind="var" path="M2_REPO/javax/activation/activation/1.1/activation-1.1.jar"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
<classpathentry kind="src" path="/Uaapersi"/>
Отсутствует путь класса от M2_REPO для Uaapersi
<classpathentry kind="src" path="/Uaapersi"/>
Похоже, мне нужно сделать дополнительную настройку, когда я поставил jar, сгенерированный мной на локальном репо, в результате чего путь класса не задан из репозитория M2. Но, когда я делаю mvn пакет и в военном файле, эта банка присутствует.
Какую дополнительную конфигурацию я должен сделать, чтобы путь класса для jar был установлен из локального репо?
Помоги мне, пожалуйста
по умолчанию плагин eclipse maven принимает проект из рабочей области и помещает его в classpath, чтобы отключить это поведение и заставить его заглянуть в локальный репозиторий maven, который вам нужен
right click on your UaaClient > maven > disable workspace resolution
а затем обновить проект и вызвать
clean compile eclipse:eclipse
с целью maven через плагин eclipse maven