【问题标题】:Use IntelliJ Idea module classpath when running Maven goal from IntelliJ Idea从 IntelliJ Idea 运行 Maven 目标时使用 IntelliJ Idea 模块类路径
【发布时间】:2010-10-26 16:56:14
【问题描述】:

假设我有两个 maven 项目:moduleA 和 moduleB。

moduleA 在 pom.xml 中对 moduleB 有依赖。

我使用 IntelliJ Idea,并且我有“Maven 项目”工具窗口,其中我有这两个 maven 项目。

并且可以从那里运行 ma​​ven 插件目标:我打开 'Maven Projects' -> moduleA -> Plugins -> jetty -> jetty:run。 Java 已运行,moduleB 位于 classpath,但它位于 Maven 本地存储库

因此,如果我更改 moduleB 源代码中的某些内容并从 Idea 执行 jetty:run,在使用 mvn install 安装 moduleB 之前,我不会看到代码更改。

在没有 mvn install 的情况下,Idea 中是否有任何解决方案,例如使用 idea-module 类路径以某种方式运行 maven 目标?

【问题讨论】:

    标签: java intellij-idea classpath maven


    【解决方案1】:
    1. 我建议使用 Jetty Integration IDEA 插件来运行独立的 jetty http://github.com/codebrewer/intellij-idea-jetty-integration-plugin

    2. 如果您仍想使用 jetty:run,您可以告诉 IDEA 为 moduleB 执行 mvn install: 运行 -> 编辑配置 -> 选择你的 maven 运行配置 -> 配置选项卡 -> 启动前(在底部) -> 运行 Maven 目标

    【讨论】:

      【解决方案2】:

      该 IDEA 插件不再开发,因为 IntelliJ 现在包含自己的 Jetty runco​​nfig 东西。

      以下是 Maven 多模块项目对我有用的方法: 在文件、项目结构、模块中,我将所有模块编译到相同的输出路径(“使用模块编译输出路径”)。我在 Jetty Deployment 文件夹的文件夹中选择了“...WEB-INF\classes”路径。 然后我还得告诉IDEA在编译的时候不要清除输出目录。否则,每个编译的模块(一个接一个)都会清除前一个模块中的类。设置,编译器,取消选中“重建时清除输出目录”。

      此外,我最初必须将所有外部(maven)依赖项 jar 放入“...WEB-INF\lib”文件夹中。

      是的,它很老套,但可以。如果有人有更好、更清洁的解决方案,我很想知道。

      【讨论】:

        猜你喜欢
        • 2017-07-21
        • 1970-01-01
        • 2017-01-06
        • 2014-10-07
        • 2013-11-09
        • 2013-05-09
        • 2020-05-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多