依赖问题 - Eclipse Java Project

时间:2016-01-29 06:40:23

标签: java eclipse maven jar

我在eclipse中有一个Java NLP项目(比如X),它在maven和amp;中有依赖关系。还有一些罐子外部添加到buildpath。

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

当我运行项目Y(单击按钮时调用项目X)会给我带来错误,如

  

java.lang.NoClassDefFoundError:   EDU /斯坦福/ NLP / IE / NERClassifierCombiner

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

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

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

谢谢。

2 个答案:

答案 0 :(得分:1)

您需要先通过maven添加外部jar。 我可以想到三种方法。

  1. 将jar添加到存储库并访问它。 它甚至可以在你的项目中如下,只需要遵循jar的maven结构。
  2. <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>
    
    1. 您可以将jar添加到lib文件夹,并添加范围级别系统依赖项,例如
    2. <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>
      
      1. 通过maven将外部jar安装到本地存储库,然后将它们作为依赖项添加,但是,这种方法会使您的构建失败,因为任何新系统都会检出代码并尝试构建项目。
      2. 尽管不鼓励采用第二种和第三种方法。

        另外,考虑使用maven shade插件制作一个胖罐,这样,所有必需的罐子都已经存在于你的罐子里。

答案 1 :(得分:0)

我遇到了类似的问题。但我发现我的问题是maven依赖,而不是外部jar 在我的情况下,我没有创建主项目(即你的Y)作为Maven项目,这就是为什么它不起作用。我将它(Y)转换为Maven项目的时刻,我的代码开始像魔术一样工作。

我只需在项目Y中添加项目X的lib文件夹。

希望这也能解决你的问题。