在NetBeans中构建JUnit测试以用于较旧的Java版本

在NetBeans中构建JUnit测试以用于较旧的Java版本,java,maven,netbeans,netbeans-plugins,Java,Maven,Netbeans,Netbeans Plugins,我正在Fedora系统上使用NetBeans 6.5 IDE(Build 090226)和使用Java(1.6.006)的Maven(4.0.5)开发Java软件 我正在对一些遗留代码进行更新,并希望为其构建一个测试(使用JUnit)。该代码与Java1.5一起使用。为了以最快、最简单的方式提供测试数据,我想通过扩展ResultSet接口实现一个简单的模拟数据集。问题是,尽管我的项目设置为使用JDK 1.5进行构建和测试: <plugin> <groupId>org.

我正在Fedora系统上使用NetBeans 6.5 IDE(Build 090226)和使用Java(1.6.006)的Maven(4.0.5)开发Java软件

我正在对一些遗留代码进行更新,并希望为其构建一个测试(使用JUnit)。该代码与Java1.5一起使用。为了以最快、最简单的方式提供测试数据,我想通过扩展ResultSet接口实现一个简单的模拟数据集。问题是,尽管我的项目设置为使用JDK 1.5进行构建和测试:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
 <configuration>
    <source>1.5</source>
    <target>1.5</target>
    <fork>true</fork>
    <executable>/usr/java/jdk1.5.0_14/bin/javac</executable>
    <compilerVersion>1.5</compilerVersion>
  </configuration>
</plugin>
<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
  <configuration>
    <!-- snip some non-jvm configuration -->
    <jvm>/usr/java/jdk1.5.0_14/bin/java</jvm>
    <forkMode>once</forkMode>
  </configuration>
</plugin>

org.apache.maven.plugins
maven编译器插件
1.5
1.5
真的
/usr/java/jdk1.5.0_14/bin/javac
1.5
org.apache.maven.plugins
maven surefire插件
/usr/java/jdk1.5.0_14/bin/java
一旦
编辑器仍然希望使我的类抽象,因为它认为我缺少Java 1.6 ResultSet中存在的方法,但使用Java 1.5中不存在的类(NClob、RowId和SQLXML)

我的编译器插件似乎设置正确——我可以成功地构建和运行这个JUnit测试,但我的整个源代码树都显示了错误图标(有效地掩盖了任何真正的错误)。如果我在ResultSet导入语句上使用“Go To Source”函数(或“Go To Declaration”),它会将我带到Java 1.6源代码zip,但在一个方法上响应“此处无法执行Go To Source”

我错过了什么?我如何才能让NetBeans编辑器窗口识别出这段代码使用的是1.5 JDK,而不是JDK NetBeans的起始版本

蒂亚,
使用Maven编译器插件不会影响Netbeans项目的编译器设置

查看项目属性,可以将源代码/二进制格式设置为所需的版本。但请注意,这不会隐藏仅在IDE中设置的Java平台版本中可用的方法(现在很可能是1.6)。这可能会有问题,例如,IOException构造函数接受原因,以及Java 1.6或更高版本引入的其他API扩展

当设置为1.5时,Netbeans将很乐意编译此代码,但它实际上不会在1.5JVM上运行。因此,为了确保您还必须安装1.5JDK,将其添加到您的平台列表(工具->平台)中,并使用该列表编译您的项目。另外,当使用正确的JDK时,NetBeans会在编辑器窗口中正确标记缺少的IOException构造函数。

向主项目添加“profile.xml”(在“Project Files”下的菜单选项,修复了我的问题:

<profiles>
  <profile>
    <id>netbeans-private</id>
    <properties>
      <netbeans.hint.jdkPlatform>JDK_1.5</netbeans.hint.jdkPlatform>
    </properties>
  </profile>
</profiles>

netbeans专用
JDK_1.5
感谢安迪的鼓励性支持,这让我一直在寻找答案


Ilane

我的项目的源代码/二进制设置已经设置为1.5(我不知道是否要检查它,但已经设置好了)Java平台已经包括了我的1.5平台。但是编辑器窗口仍然是1.6源代码。那么,你是说除了用1.5启动NetBeans之外,没有办法让IDE在IDE Java编辑器中使用1.5吗?你不必用特定的版本启动NetBeans。你可以更改的平台JDK/版本通过在项目构建/编译器设置中选择所需的平台来检查您的项目。您也可以通过展开Maven项目的Java依赖项文件夹来检查这一点。它应该显示您的JDK 1.5,而不是JDK 1.6或默认JDK。如果显示JDK 1.6,请转到项目属性,并在t之后将构建/编译平台更改为JDK 1.5您的项目中不应该再有对1.6 JDK的引用了。是否将Source/Binary设置为1.5“选择所需的平台”?这已经设置为1.5。“项目构建/编译器设置”是否在其他地方?我搜索了,没有找到名为“Java依赖项”的文件夹在我的IDE中的任何地方——您可能指的是与6.5不同的版本吗?我的Java平台列表中列出了1.5和1.6。1.6版本被列为默认版本(这不是从1.6启动netbeans开始的吗?)。我所知道的唯一特定于项目的配置是在pom.xml文件中,在我的原始帖子中列出了对java的引用。你能更具体一些吗?