我在IntelliJ中有一个编译的Java项目,现在我正在慢慢改变。
有没有办法让IntelliJ运行项目,即使代码的某些部分仍然无法编译?如果是这样,怎么样?
为什么我需要这个,你问?看到这张票: IDEA-61945运行和调试命令应忽略与正在运行的主程序无关的编译错误。 http://youtrack.jetbrains.net/issue/IDEA-61945?query=it#tab=Comments
请不要回答这篇帖子质疑我是否应该或者我不需要运行项目,即使它没有编译。请。
如果在IntelliJ中不可能,是否可以在maven中使用?怎么样?
答案 0 :(得分:22)
在Intellij 12中,您还有以下选项(我个人认为最好的选项):
现在,当你运行时,make仍然会自动完成,但即使编译错误也会继续运行。
关于上述辩论;我认为能够运行编译的一部分代码是完全合理的,即使代码的另一部分不是这样;例如如果代码的其他部分属于项目中的模块,但在运行时不涉及。
答案 1 :(得分:6)
我今天在工作中遇到了同样的问题。在此之前,我可能很快就会抓住这样一句话:“你为什么要这样做呢?”事实证明,Eclipse可以让你做到这一点,如果你开始与依赖于这个功能的其他开发人员同时工作(也就是说,签入不能编译的代码),那么能够做到这一点很方便。 IDEA!
幸运的是我们IDEA用户,你可以。按照FAQ for Eclipse Users中的这些说明进行操作,您就可以了:
为了能够运行有错误的代码,您可以选择Eclipse 编译器在Settings对话框,Compiler,Java Compiler中添加 -proceedOnError选项,用于编译器的Additional命令行参数。
唯一蹩脚的是,它不像Eclipse那样无缝。首先,您必须在运行之前取消选项Make,因为如果make失败,IDEA将无法运行。然后,您必须记住在运行之前构建。但是,有了这些警告,你应该能够完成你所追求的目标。
答案 2 :(得分:3)
Stijn Geukens的回答是正确的,但可以改进。 在Intellij Idea版本12中,它可以替换为“Make,no error check”,而不是删除“Make”规则。这样项目将被重建(编译器将尝试这样做),但它将独立于编译结果运行程序。
答案 3 :(得分:2)
如果您只想调试一个部件,那么您可以围绕它进行单元测试。如果您不使用不编译的类,那么您仍然可以调试与单元测试相关的代码。
答案 4 :(得分:1)
如果出现编译错误,您可以从编译中排除特定文件。
答案 5 :(得分:1)
至少在Intellij 12中你可以做到这一点。
有关如何重新加入的信息,请参阅this question。
答案 6 :(得分:1)
对于 Intellij 2017.3.1 ,我的配置如下:
PS:此配置并非适用于所有用途。它只适用于修复由于实现代码更改而导致失败的单元测试。当您回到实现功能时,禁用此功能会更有用,因为它会让您运行带有错误的实现代码,并且不会跳转到编译错误。您需要来回更改Eclipse编译器和Javac,以获得最佳结果。
答案 7 :(得分:0)
答案 8 :(得分:0)
更新版本2017-2.5社区,因为菜单选项略有不同
导航至:
运行>编辑配置
在“运行/调试”配置窗口底部附近寻找
“启动前:激活工具窗口”
此标题下的字段列出了您当前的构建配置设置。
使用+和-符号以添加和删除构建首选项。
完成后
选择应用,然后确定
就这样!
答案 9 :(得分:-6)
我认为它根本不可能。如何运行不能编译的东西?这就像驾驶一辆没有放在一起的汽车。您可以注释掉不编译的文件,以便项目编译....
编辑 - 或者您可以让Intellij不将文件计为源
右键点击您的项目 - >打开模块设置 - >选择你的模块 - >选择文件 - >排除