Путь к классу отсутствует для сгенерированного JAR из репозитория M2 в Maven

1

У меня есть проект с несколькими модулями.

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 был установлен из локального репо?

Помоги мне, пожалуйста

Теги:
maven
classpath
m2eclipse

1 ответ

1

по умолчанию плагин eclipse maven принимает проект из рабочей области и помещает его в classpath, чтобы отключить это поведение и заставить его заглянуть в локальный репозиторий maven, который вам нужен

right click on your UaaClient > maven > disable workspace resolution

Изображение 174551

а затем обновить проект и вызвать

clean compile eclipse:eclipse

с целью maven через плагин eclipse maven

Ещё вопросы

Сообщество Overcoder
Наверх
Меню