【问题标题】:Use classpath of multiple modules in IntelliJ IDEA在 IntelliJ IDEA 中使用多个模块的类路径
【发布时间】:2017-01-06 03:27:25
【问题描述】:

我有一个从 Eclipse 导入的 Maven 项目,其中的依赖项设置为范围 provided。部署项目时,也会部署 jar,这样就可以正常工作了。

然而,在开发过程中,我使用了一个调用 Maven 项目的“调试项目”,当它运行时,当 Maven 依赖项设置为 provided 时,我会收到一堆 Class Not Found 错误。

如果我将 Maven 依赖项的范围更改为 Compile,则项目运行正常。

如果我将依赖项的范围更改为compile,这会改变项目的输出吗?即添加一堆罐子?那是不可取的。

我也尝试过修改Debug Configuration设置,在“Use classpath of module”中指定了Maven项目,但是后来没有找到调试项目的文件。

如何将类路径指定为 Maven 项目和调试项目,以便两个项目中的类(包括依赖项)都在类路径上?

谢谢!

【问题讨论】:

    标签: java eclipse maven intellij-idea classpath


    【解决方案1】:

    依赖范围有3种:compile、test和provided,

    1. 编译:依赖库将在所有步骤中使用:编译、测试和运行,
    2. 测试:依赖库只会在测试中使用
    3. 规定:依赖库只会在编译和测试时使用,但在运行时,依赖库必须由容器提供,否则会抛出class no find问题。

    您的问题是您在运行项目时没有在运行环境(容器)中提供依赖库。

    希望对你有帮助

    【讨论】:

    • “你没有在运行环境中提供依赖库”能不能再具体一点?
    • 例如我们开发web的时候,Servlet jar中的依赖,我们可以设置为provided,因为容器(比如Jboss)会提供servlet。
    • 我了解不同的范围,但鉴于上述问题的限制,我正在尝试找到一种适用于 IntelliJ IDEA 的解决方案。
    • stackoverflow.com/questions/3410548/…,我想你可能会从这个链接器中得到一些想法
    【解决方案2】:

    您是如何将项目导入 Idea 的?如果项目作为 Maven 项目打开,它应该可以开箱即用。 可以尝试选择 pom.xml 打开项目吗?

    【讨论】:

    • Maven 项目正在构建中。调试项目不是 Maven 项目。它是从 Eclipse 项目模型中导入的。
    • Idea对maven的支持非常好,所以你需要的是:去掉Idea项目设置*.iml和.idea/,然后选择pom.xml打开项目,DO NOT import from from Eclipse 项目模型。
    猜你喜欢
    • 1970-01-01
    • 2014-10-07
    • 1970-01-01
    • 1970-01-01
    • 2015-09-09
    • 2012-01-18
    • 2013-01-30
    • 1970-01-01
    • 2013-11-09
    相关资源
    最近更新 更多