从ItelliJ Idea运行Maven目标时使用ItelliJ Idea模块类路径

时间:2010-10-26 16:56:15

标签: java intellij-idea classpath maven

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

moduleA在它的pom.xml中依赖于moduleB。

我使用 IntelliJ Idea ,我有' Maven项目'工具窗口,我有这两个maven项目。

可以从那里运行 maven插件目标:我打开'Maven Projects' - > moduleA - >插件 - >码头 - >码头:运行。  Java已运行,moduleB位于 classpath ,但它位于 Maven本地存储库

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

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

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:3)

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

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

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

是的,这很黑,但有效。如果有人有更好,更清洁的解决方案,我有兴趣知道。