【问题标题】:Class path missing for custom generated jar from M2 repo in maven从 Maven 中的 M2 存储库自定义生成的 jar 缺少类路径
【发布时间】:2014-06-23 04:29:03
【问题描述】:

我有一个多模块项目。

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"/>

缺少来自 Uaapersi 的 M2_REPO 的类路径

 <classpathentry kind="src" path="/Uaapersi"/>

当我将我生成的 jar 放在本地 repo 上时,我似乎需要做额外的配置,因为没有从 M2 repo 设置哪个类路径。但是,当我做 mvn package 并且在 war 文件中这个 jar 是存在的。

我必须进行哪些额外配置才能从本地 repo 设置 jar 的类路径?

请帮帮我

【问题讨论】:

    标签: java eclipse maven classpath m2eclipse


    【解决方案1】:

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

    right click on your UaaClient > maven > disable workspace resolution
    

    然后刷新项目并调用

    clean compile eclipse:eclipse
    

    通过eclipse maven插件实现maven目标

    【讨论】:

      猜你喜欢
      • 2015-11-22
      • 1970-01-01
      • 1970-01-01
      • 2017-07-07
      • 1970-01-01
      • 2019-05-31
      • 1970-01-01
      • 1970-01-01
      • 2011-11-02
      相关资源
      最近更新 更多