java - 依赖项问题 - Eclipse Java 项目

标签 java eclipse maven jar

我在 eclipse 中有一个 Java NLP 项目(比如 X),它在 maven 中有依赖项,还有一些从外部添加到构建路径的 jar。

现在我已经使用 java swing 为这个项目(x)构建了 UI,这是 eclipse 中的另一个项目(比如 Y)。

当我运行项目 Y(单击按钮时调用项目 X)时,会抛出诸如

之类的错误

java.lang.NoClassDefFoundError: edu/stanford/nlp/ie/NERClassifierCombiner

我认为这是因为,项目 Y 无法找到/识别我在项目 X 中添加的外部 jar。

我也尝试将所有这些外部 jar 添加到 Project Y 的构建路径中,但没有任何效果。

您能帮我弄清楚如何处理这些依赖性问题吗? 4天以来一直在挣扎。

谢谢。

最佳答案

您需要首先通过maven添加外部jar。 我可以想到三种方法来做到这一点。

  1. 通过将 jar 添加到存储库并访问它。 它甚至可以在您的项目中,如下所示,唯一的问题是需要遵循 jar 的 Maven 结构。
<repository>
    <id>lib</id>
    <name>lib</name>
    <releases>
        <enabled>true</enabled>
        <checksumPolicy>ignore</checksumPolicy>
    </releases>
    <snapshots>
        <enabled>false</enabled>
    </snapshots>
    <url>file://${project.basedir}/lib</url>
</repository>
  • 您可以将 jar 添加到 lib 文件夹,并添加范围级别的系统依赖项,例如
  • <dependency>
         <groupId>myjar_1.0</groupId>
         <artifactId>myjar_1.0</artifactId>
         <scope>system</scope>
         <version>1.0</version>
         <systemPath>${basedir}\src\lib\myjar_1.0.jar</systemPath>
     </dependency>
    
  • 通过maven将外部jar安装到本地存储库,然后将它们添加为依赖项,但是,此方法将使您在任何新系统上构建失败,在新系统中您 checkout 代码并尝试构建项目。
  • 但是,强烈建议不要使用第二种和第三种方法。

    此外,考虑使用 Maven Shade 插件制作一个 fat jar 子,这样所有必需的 jar 都已经存在于您的 jar 中。

    关于java - 依赖项问题 - Eclipse Java 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35078369/

    相关文章:

    eclipse - 如何在eclipse luna中添加tomcat

    java - 使用 Java 将事件添加到特定的 Google 日历

    java - Hibernate 生成的 DDL 中的无效语法错误 "type= MyISAM"

    java - Eclipse JUNO 中的 64 位 JDK 配置

    java - 无法读取 Artifact org.apache.maven.plugins :maven-install-plugin:maven-plugin:2. 4:runtime 的生命周期映射元数据

    scala - Maven with Jacoco 和 Sonar 0% 覆盖率

    maven - SpringBoot - Bean 创建和 PostConstruct 初始化的顺序

    java - 从正在运行的 java 程序的内存中定位并读取特定类型的对象

    java - 如果 JDOM2 元素文本的内容由其内部元素分隔,如何获取列表形式的 JDOM2 元素文本?

    java - 在 Android Studio 中使用 Netbeans 的 JDK