2010-08-11 29 views
4

我正在使用Netbeans和Maven项目。
在某些情况下,NetBeans会显示我编译失败(红色气球),但Maven编译一切都没有任何问题!Netbeans&Maven:不同的编译行为

这可能是造成这种差异的原因。 我已经检查过两者都使用相同的JDK版本。

+1

那么,什么是编译失败? Netbeans使用Ant来构建它的项目,以便您可以阅读Ant文件以了解在构建项目时发生了什么。或者,你可以切换你的Maven脚本蚂蚁,然后你可以使用相同的脚本无论你是从NetBeans中或不建设。 – CurtainDog 2010-08-11 07:52:39

+0

在哪里可以找到Netbeans使用的Ant文件? – 2010-08-11 08:17:38

+0

寻找在你的nbproject文件目录中的build-impl.xml中的文件。 – CurtainDog 2010-08-12 07:53:05

回答

1

一个可能的原因可能是您没有在net bean类路径中添加所需的jar。但jar被列在您的maven pom.xml中

+0

您可以提供更多信息或至少提供错误的详细信息 – Kamal 2010-08-11 07:26:07

+1

使用Maven项目时,我们无法为n​​etbeans项目属性设置classpath ... Maven集成使netbeans能够在pom.xml中的依赖关系中指定的所有jar进行编译 我错过了什么吗? – 2010-08-11 08:30:48

0

尝试这样做,在您的项目目录中从命令行执行一次mvn install,然后在netbeans IDE中重新打开或重新加载项目(我希望您正在使用6.9?)。

这会将所有工件安装在本地仓库中。

这通常发生在您的maven项目中有模块且彼此依赖的情况下。

+1

正是我的工作方式(通过行家通过命令行或nbactions叫)......而且不管我打开/重开项目,NetBeans的告诉我不由的Maven引发的错误。 一切都发生这样的Netbeans和Maven不使用相同的JDK或编译选项... – 2010-08-11 11:05:37

0

更深入的分析需要一些更多细节。

在大多数情况下CMDLINE和NetBeans编辑器之间的编译错误的差异可以通过缺失源根造成的(读取生成的源根 - 见项目属性的源面板如何设置源根)。

netbeans嵌入了旧的svn HEAD快照maven二进制文件,因此在一些非常罕见的情况下,解析依赖关系树可能存在差异,但我还没有看到这种情况。

此外,NetBeans编译器不会从目标/源编码中除去编译器插件 上定义的大部分开关。

NetBeans编辑器编译器是不是100%的JDK编译器兼容,并且已经出现了不兼容的情况,所以我们又回到了需要首先看到实际的错误..