从maven中的M2 repo自定义生成的jar缺少类路径

时间:2014-06-23 04:29:04

标签: java eclipse maven classpath m2eclipse

我有一个多模块项目。

Uaaper是父母pom

UaaPersi是孩子pom。

UaaClient是第三个使用UaaPersi生成的jar的应用程序

我已使用mvn install命令在我的本地仓库中成功安装了UaaPersi jar。

现在我有使用UaaPersi jar的UaaClient。 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时: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包时,在war文件中这个jar就存在了。

我需要做什么额外的配置才能让jar的类路径从本地仓库设置?

请帮帮我

1 个答案:

答案 0 :(得分:1)

默认情况下,eclipse maven插件从工作区获取项目并将其放入类路径中,以禁用此行为并强制它查看您需要的maven本地存储库

right click on your UaaClient > maven > disable workspace resolution

enter image description here

然后刷新项目并调用

clean compile eclipse:eclipse

通过eclipse maven插件实现maven目标