【问题标题】:Ant build works on one system and not anotherAnt 构建适用于一个系统,而不适用于另一个系统
【发布时间】:2013-01-15 17:16:13
【问题描述】:

我们最近将 FindBugs 添加到我们的构建和测试过程中,但我们在使用 @SuppressWarning 注释时遇到了构建问题。

更有趣的是,代码将在我们的三台开发人员笔记本电脑上编译,但不能在我们的构建系统上编译,即使代码相同且使用的 Java 编译器相同(1.5.0_22 - 32 位)。

问题是:我们有一个项目 HCSBeans,它依赖于另一个项目 CommonLibrary。 CommonLibrary 使用一次@SuppressWarning,而 HCSBeans 没有。 CommonLibrary 构建在我们的笔记本电脑和构建系统上,但 HCSBeans 不构建在构建系统上。在这一点上,我找不到构建系统和我的笔记本电脑之间的区别。

这是构建系统的详细 Ant 输出(注意:我们没有使用 Maven):

-do-compile:
    [mkdir] Created dir: C:\Documents and Settings\stephen\.hudson\jobs\ORC Trunk\workspace\orc\nb\HCSBeans\build\empty
    [javac] com\hcs\orc\ui\BindingHandler.java added as com\hcs\orc\ui\BindingHandler.class doesn't exist.
    [javac] com\hcs\orc\ui\JRadioButtonUpdatable.java added as com\hcs\orc\ui\JRadioButtonUpdatable.class doesn't exist.
    [javac] com\hcs\orc\ui\JTextAreaSizeFix.java added as com\hcs\orc\ui\JTextAreaSizeFix.class doesn't exist.
    [javac] com\hcs\orc\ui\ORCAssignmentPanel.java added as com\hcs\orc\ui\ORCAssignmentPanel.class doesn't exist.
    [javac] com\hcs\orc\ui\ORCCheckBox.java added as com\hcs\orc\ui\ORCCheckBox.class doesn't exist.
    [javac] com\hcs\orc\ui\ORCLabel.java added as com\hcs\orc\ui\ORCLabel.class doesn't exist.
    [javac] com\hcs\orc\ui\ORCLabelBeanInfo.java added as com\hcs\orc\ui\ORCLabelBeanInfo.class doesn't exist.
    [javac] com\hcs\orc\ui\ORCPanel.java added as com\hcs\orc\ui\ORCPanel.class doesn't exist.
    [javac] com\hcs\orc\ui\ORCPanelBeanInfo.java added as com\hcs\orc\ui\ORCPanelBeanInfo.class doesn't exist.
    [javac] com\hcs\orc\ui\ORCRadioButton.java added as com\hcs\orc\ui\ORCRadioButton.class doesn't exist.
    [javac] com\hcs\orc\ui\ORCRadioButtonBeanInfo.java added as com\hcs\orc\ui\ORCRadioButtonBeanInfo.class doesn't exist.
    [javac] com\hcs\orc\ui\ORCRadioButtonGroup.java added as com\hcs\orc\ui\ORCRadioButtonGroup.class doesn't exist.
    [javac] com\hcs\orc\ui\ORCRadioButtonGroupBeanInfo.java added as com\hcs\orc\ui\ORCRadioButtonGroupBeanInfo.class doesn't exist.
    [javac] com\hcs\orc\ui\ORCScrollPane.java added as com\hcs\orc\ui\ORCScrollPane.class doesn't exist.
    [javac] com\hcs\orc\ui\ORCScrollPaneBeanInfo.java added as com\hcs\orc\ui\ORCScrollPaneBeanInfo.class doesn't exist.
    [javac] com\hcs\orc\ui\ORCSeparator.java added as com\hcs\orc\ui\ORCSeparator.class doesn't exist.
    [javac] com\hcs\orc\ui\ORCSeparatorBeanInfo.java added as com\hcs\orc\ui\ORCSeparatorBeanInfo.class doesn't exist.
    [javac] com\hcs\orc\ui\ORCSplitPane.java added as com\hcs\orc\ui\ORCSplitPane.class doesn't exist.
    [javac] com\hcs\orc\ui\ORCSplitPaneBeanInfo.java added as com\hcs\orc\ui\ORCSplitPaneBeanInfo.class doesn't exist.
    [javac] com\hcs\orc\ui\ORCTabbedPane.java added as com\hcs\orc\ui\ORCTabbedPane.class doesn't exist.
    [javac] com\hcs\orc\ui\ORCTabbedPaneBeanInfo.java added as com\hcs\orc\ui\ORCTabbedPaneBeanInfo.class doesn't exist.
    [javac] com\hcs\orc\ui\ORCTable.java added as com\hcs\orc\ui\ORCTable.class doesn't exist.
    [javac] com\hcs\orc\ui\ORCTableBeanInfo.java added as com\hcs\orc\ui\ORCTableBeanInfo.class doesn't exist.
    [javac] com\hcs\orc\ui\ORCTextArea.java added as com\hcs\orc\ui\ORCTextArea.class doesn't exist.
    [javac] com\hcs\orc\ui\ORCTextAreaBeanInfo.java added as com\hcs\orc\ui\ORCTextAreaBeanInfo.class doesn't exist.
    [javac] com\hcs\orc\ui\ORCTextField.java added as com\hcs\orc\ui\ORCTextField.class doesn't exist.
    [javac] com\hcs\orc\ui\ORCTextFieldBeanInfo.java added as com\hcs\orc\ui\ORCTextFieldBeanInfo.class doesn't exist.
    [javac] com\hcs\orc\ui\ORCTextPane.java added as com\hcs\orc\ui\ORCTextPane.class doesn't exist.
    [javac] com\hcs\orc\ui\ORCTextPaneBeanInfo.java added as com\hcs\orc\ui\ORCTextPaneBeanInfo.class doesn't exist.
    [javac] com\hcs\orc\ui\RoundButtonBorder.java added as com\hcs\orc\ui\RoundButtonBorder.class doesn't exist.
    [javac] com\hcs\orc\ui\TextLabelUI.java added as com\hcs\orc\ui\TextLabelUI.class doesn't exist.
    [javac] com\hcs\orc\ui\TextTransfer.java added as com\hcs\orc\ui\TextTransfer.class doesn't exist.
    [javac] com\hcs\orc\ui\TouchButton.java added as com\hcs\orc\ui\TouchButton.class doesn't exist.
    [javac] com\hcs\orc\ui\TouchButtonUpdatable.java added as com\hcs\orc\ui\TouchButtonUpdatable.class doesn't exist.
    [javac] C:\Documents and Settings\stephen\.hudson\jobs\ORC Trunk\workspace\orc\nb\HCSBeans\src\com\hcs\orc\ui\resources\black_box.gif skipped - don't know how to handle it
    [javac] C:\Documents and Settings\stephen\.hudson\jobs\ORC Trunk\workspace\orc\nb\HCSBeans\src\com\hcs\orc\ui\resources\black_box_disabled.gif skipped - don't know how to handle it
    [javac] C:\Documents and Settings\stephen\.hudson\jobs\ORC Trunk\workspace\orc\nb\HCSBeans\src\com\hcs\orc\ui\resources\black_box_x.gif skipped - don't know how to handle it
    [javac] C:\Documents and Settings\stephen\.hudson\jobs\ORC Trunk\workspace\orc\nb\HCSBeans\src\com\hcs\orc\ui\resources\black_box_x_disabled.gif skipped - don't know how to handle it
    [javac] Compiling 34 source files to C:\Documents and Settings\stephen\.hudson\jobs\ORC Trunk\workspace\orc\nb\HCSBeans\build\classes
    [javac] Using external javac compiler
    [javac] Compilation arguments:
    [javac] '-d'
    [javac] 'C:\Documents and Settings\stephen\.hudson\jobs\ORC Trunk\workspace\orc\nb\HCSBeans\build\classes'
    [javac] '-classpath'
    [javac] 'C:\Documents and Settings\stephen\.hudson\jobs\ORC Trunk\workspace\orc\nb\HCSBeans\build\classes;C:\Documents and Settings\stephen\.hudson\jobs\ORC Trunk\workspace\orc\nb\CommonLibrary\dist\CommonLibrary.jar;C:\Documents and Settings\stephen\.hudson\jobs\ORC Trunk\workspace\orc\lib\swing-layout-1.0.4.jar'
    [javac] '-sourcepath'
    [javac] 'C:\Documents and Settings\stephen\.hudson\jobs\ORC Trunk\workspace\orc\nb\HCSBeans\build\empty'
    [javac] '-target'
    [javac] '1.5'
    [javac] '-encoding'
    [javac] 'windows-1252'
    [javac] '-g'
    [javac] '-source'
    [javac] '1.5'
    [javac]
    [javac] The ' characters around the executable and arguments are
    [javac] not part of the command.
    [javac] Files to be compiled:
    [javac]     C:\Documents and Settings\stephen\.hudson\jobs\ORC Trunk\workspace\orc\nb\HCSBeans\src\com\hcs\orc\ui\BindingHandler.java
    [javac]     C:\Documents and Settings\stephen\.hudson\jobs\ORC Trunk\workspace\orc\nb\HCSBeans\src\com\hcs\orc\ui\JRadioButtonUpdatable.java
    [javac]     C:\Documents and Settings\stephen\.hudson\jobs\ORC Trunk\workspace\orc\nb\HCSBeans\src\com\hcs\orc\ui\JTextAreaSizeFix.java
    [javac]     C:\Documents and Settings\stephen\.hudson\jobs\ORC Trunk\workspace\orc\nb\HCSBeans\src\com\hcs\orc\ui\ORCAssignmentPanel.java
    [javac]     C:\Documents and Settings\stephen\.hudson\jobs\ORC Trunk\workspace\orc\nb\HCSBeans\src\com\hcs\orc\ui\ORCCheckBox.java
    [javac]     C:\Documents and Settings\stephen\.hudson\jobs\ORC Trunk\workspace\orc\nb\HCSBeans\src\com\hcs\orc\ui\ORCLabel.java
    [javac]     C:\Documents and Settings\stephen\.hudson\jobs\ORC Trunk\workspace\orc\nb\HCSBeans\src\com\hcs\orc\ui\ORCLabelBeanInfo.java
    [javac]     C:\Documents and Settings\stephen\.hudson\jobs\ORC Trunk\workspace\orc\nb\HCSBeans\src\com\hcs\orc\ui\ORCPanel.java
    [javac]     C:\Documents and Settings\stephen\.hudson\jobs\ORC Trunk\workspace\orc\nb\HCSBeans\src\com\hcs\orc\ui\ORCPanelBeanInfo.java
    [javac]     C:\Documents and Settings\stephen\.hudson\jobs\ORC Trunk\workspace\orc\nb\HCSBeans\src\com\hcs\orc\ui\ORCRadioButton.java
    [javac]     C:\Documents and Settings\stephen\.hudson\jobs\ORC Trunk\workspace\orc\nb\HCSBeans\src\com\hcs\orc\ui\ORCRadioButtonBeanInfo.java
    [javac]     C:\Documents and Settings\stephen\.hudson\jobs\ORC Trunk\workspace\orc\nb\HCSBeans\src\com\hcs\orc\ui\ORCRadioButtonGroup.java
    [javac]     C:\Documents and Settings\stephen\.hudson\jobs\ORC Trunk\workspace\orc\nb\HCSBeans\src\com\hcs\orc\ui\ORCRadioButtonGroupBeanInfo.java
    [javac]     C:\Documents and Settings\stephen\.hudson\jobs\ORC Trunk\workspace\orc\nb\HCSBeans\src\com\hcs\orc\ui\ORCScrollPane.java
    [javac]     C:\Documents and Settings\stephen\.hudson\jobs\ORC Trunk\workspace\orc\nb\HCSBeans\src\com\hcs\orc\ui\ORCScrollPaneBeanInfo.java
    [javac]     C:\Documents and Settings\stephen\.hudson\jobs\ORC Trunk\workspace\orc\nb\HCSBeans\src\com\hcs\orc\ui\ORCSeparator.java
    [javac]     C:\Documents and Settings\stephen\.hudson\jobs\ORC Trunk\workspace\orc\nb\HCSBeans\src\com\hcs\orc\ui\ORCSeparatorBeanInfo.java
    [javac]     C:\Documents and Settings\stephen\.hudson\jobs\ORC Trunk\workspace\orc\nb\HCSBeans\src\com\hcs\orc\ui\ORCSplitPane.java
    [javac]     C:\Documents and Settings\stephen\.hudson\jobs\ORC Trunk\workspace\orc\nb\HCSBeans\src\com\hcs\orc\ui\ORCSplitPaneBeanInfo.java
    [javac]     C:\Documents and Settings\stephen\.hudson\jobs\ORC Trunk\workspace\orc\nb\HCSBeans\src\com\hcs\orc\ui\ORCTabbedPane.java
    [javac]     C:\Documents and Settings\stephen\.hudson\jobs\ORC Trunk\workspace\orc\nb\HCSBeans\src\com\hcs\orc\ui\ORCTabbedPaneBeanInfo.java
    [javac]     C:\Documents and Settings\stephen\.hudson\jobs\ORC Trunk\workspace\orc\nb\HCSBeans\src\com\hcs\orc\ui\ORCTable.java
    [javac]     C:\Documents and Settings\stephen\.hudson\jobs\ORC Trunk\workspace\orc\nb\HCSBeans\src\com\hcs\orc\ui\ORCTableBeanInfo.java
    [javac]     C:\Documents and Settings\stephen\.hudson\jobs\ORC Trunk\workspace\orc\nb\HCSBeans\src\com\hcs\orc\ui\ORCTextArea.java
    [javac]     C:\Documents and Settings\stephen\.hudson\jobs\ORC Trunk\workspace\orc\nb\HCSBeans\src\com\hcs\orc\ui\ORCTextAreaBeanInfo.java
    [javac]     C:\Documents and Settings\stephen\.hudson\jobs\ORC Trunk\workspace\orc\nb\HCSBeans\src\com\hcs\orc\ui\ORCTextField.java
    [javac]     C:\Documents and Settings\stephen\.hudson\jobs\ORC Trunk\workspace\orc\nb\HCSBeans\src\com\hcs\orc\ui\ORCTextFieldBeanInfo.java
    [javac]     C:\Documents and Settings\stephen\.hudson\jobs\ORC Trunk\workspace\orc\nb\HCSBeans\src\com\hcs\orc\ui\ORCTextPane.java
    [javac]     C:\Documents and Settings\stephen\.hudson\jobs\ORC Trunk\workspace\orc\nb\HCSBeans\src\com\hcs\orc\ui\ORCTextPaneBeanInfo.java
    [javac]     C:\Documents and Settings\stephen\.hudson\jobs\ORC Trunk\workspace\orc\nb\HCSBeans\src\com\hcs\orc\ui\RoundButtonBorder.java
    [javac]     C:\Documents and Settings\stephen\.hudson\jobs\ORC Trunk\workspace\orc\nb\HCSBeans\src\com\hcs\orc\ui\TextLabelUI.java
    [javac]     C:\Documents and Settings\stephen\.hudson\jobs\ORC Trunk\workspace\orc\nb\HCSBeans\src\com\hcs\orc\ui\TextTransfer.java
    [javac]     C:\Documents and Settings\stephen\.hudson\jobs\ORC Trunk\workspace\orc\nb\HCSBeans\src\com\hcs\orc\ui\TouchButton.java
    [javac]     C:\Documents and Settings\stephen\.hudson\jobs\ORC Trunk\workspace\orc\nb\HCSBeans\src\com\hcs\orc\ui\TouchButtonUpdatable.java
    [javac] An exception has occurred in the compiler (1.5.0_22). Please file a bug at the Java Developer Connection (http://java.sun.com/webapps/bugreport)  after checking the Bug Parade for duplicates. Include your program and the following diagnostic in your report.  Thank you.
    [javac] com.sun.tools.javac.code.Symbol$CompletionFailure: file edu\umd\cs\findbugs\annotations\SuppressWarnings.class not found
      [ant] Exiting C:\Documents and Settings\stephen\.hudson\jobs\ORC Trunk\workspace\orc\nb\HCSBeans\build.xml.
  [antcall] Exiting C:\Documents and Settings\stephen\.hudson\jobs\ORC Trunk\workspace\orc\nb\build.xml.

这是我笔记本电脑的详细 Ant 输出:

-do-compile:
    [mkdir] Created dir: C:\hcs\orc\nb\HCSBeans\build\empty
    [javac] com\hcs\orc\ui\BindingHandler.java added as com\hcs\orc\ui\BindingHandler.class doesn't exist.
    [javac] com\hcs\orc\ui\JRadioButtonUpdatable.java added as com\hcs\orc\ui\JRadioButtonUpdatable.class doesn't exist.
    [javac] com\hcs\orc\ui\JTextAreaSizeFix.java added as com\hcs\orc\ui\JTextAreaSizeFix.class doesn't exist.
    [javac] com\hcs\orc\ui\ORCAssignmentPanel.java added as com\hcs\orc\ui\ORCAssignmentPanel.class doesn't exist.
    [javac] com\hcs\orc\ui\ORCCheckBox.java added as com\hcs\orc\ui\ORCCheckBox.class doesn't exist.
    [javac] com\hcs\orc\ui\ORCLabel.java added as com\hcs\orc\ui\ORCLabel.class doesn't exist.
    [javac] com\hcs\orc\ui\ORCLabelBeanInfo.java added as com\hcs\orc\ui\ORCLabelBeanInfo.class doesn't exist.
    [javac] com\hcs\orc\ui\ORCPanel.java added as com\hcs\orc\ui\ORCPanel.class doesn't exist.
    [javac] com\hcs\orc\ui\ORCPanelBeanInfo.java added as com\hcs\orc\ui\ORCPanelBeanInfo.class doesn't exist.
    [javac] com\hcs\orc\ui\ORCRadioButton.java added as com\hcs\orc\ui\ORCRadioButton.class doesn't exist.
    [javac] com\hcs\orc\ui\ORCRadioButtonBeanInfo.java added as com\hcs\orc\ui\ORCRadioButtonBeanInfo.class doesn't exist.
    [javac] com\hcs\orc\ui\ORCRadioButtonGroup.java added as com\hcs\orc\ui\ORCRadioButtonGroup.class doesn't exist.
    [javac] com\hcs\orc\ui\ORCRadioButtonGroupBeanInfo.java added as com\hcs\orc\ui\ORCRadioButtonGroupBeanInfo.class doesn't exist.
    [javac] com\hcs\orc\ui\ORCScrollPane.java added as com\hcs\orc\ui\ORCScrollPane.class doesn't exist.
    [javac] com\hcs\orc\ui\ORCScrollPaneBeanInfo.java added as com\hcs\orc\ui\ORCScrollPaneBeanInfo.class doesn't exist.
    [javac] com\hcs\orc\ui\ORCSeparator.java added as com\hcs\orc\ui\ORCSeparator.class doesn't exist.
    [javac] com\hcs\orc\ui\ORCSeparatorBeanInfo.java added as com\hcs\orc\ui\ORCSeparatorBeanInfo.class doesn't exist.
    [javac] com\hcs\orc\ui\ORCSplitPane.java added as com\hcs\orc\ui\ORCSplitPane.class doesn't exist.
    [javac] com\hcs\orc\ui\ORCSplitPaneBeanInfo.java added as com\hcs\orc\ui\ORCSplitPaneBeanInfo.class doesn't exist.
    [javac] com\hcs\orc\ui\ORCTabbedPane.java added as com\hcs\orc\ui\ORCTabbedPane.class doesn't exist.
    [javac] com\hcs\orc\ui\ORCTabbedPaneBeanInfo.java added as com\hcs\orc\ui\ORCTabbedPaneBeanInfo.class doesn't exist.
    [javac] com\hcs\orc\ui\ORCTable.java added as com\hcs\orc\ui\ORCTable.class doesn't exist.
    [javac] com\hcs\orc\ui\ORCTableBeanInfo.java added as com\hcs\orc\ui\ORCTableBeanInfo.class doesn't exist.
    [javac] com\hcs\orc\ui\ORCTextArea.java added as com\hcs\orc\ui\ORCTextArea.class doesn't exist.
    [javac] com\hcs\orc\ui\ORCTextAreaBeanInfo.java added as com\hcs\orc\ui\ORCTextAreaBeanInfo.class doesn't exist.
    [javac] com\hcs\orc\ui\ORCTextField.java added as com\hcs\orc\ui\ORCTextField.class doesn't exist.
    [javac] com\hcs\orc\ui\ORCTextFieldBeanInfo.java added as com\hcs\orc\ui\ORCTextFieldBeanInfo.class doesn't exist.
    [javac] com\hcs\orc\ui\ORCTextPane.java added as com\hcs\orc\ui\ORCTextPane.class doesn't exist.
    [javac] com\hcs\orc\ui\ORCTextPaneBeanInfo.java added as com\hcs\orc\ui\ORCTextPaneBeanInfo.class doesn't exist.
    [javac] com\hcs\orc\ui\RoundButtonBorder.java added as com\hcs\orc\ui\RoundButtonBorder.class doesn't exist.
    [javac] com\hcs\orc\ui\TextLabelUI.java added as com\hcs\orc\ui\TextLabelUI.class doesn't exist.
    [javac] com\hcs\orc\ui\TextTransfer.java added as com\hcs\orc\ui\TextTransfer.class doesn't exist.
    [javac] com\hcs\orc\ui\TouchButton.java added as com\hcs\orc\ui\TouchButton.class doesn't exist.
    [javac] com\hcs\orc\ui\TouchButtonUpdatable.java added as com\hcs\orc\ui\TouchButtonUpdatable.class doesn't exist.
    [javac] C:\hcs\orc\nb\HCSBeans\src\com\hcs\orc\ui\resources\black_box.gif skipped - don't know how to handle it
    [javac] C:\hcs\orc\nb\HCSBeans\src\com\hcs\orc\ui\resources\black_box_disabled.gif skipped - don't know how to handle it
    [javac] C:\hcs\orc\nb\HCSBeans\src\com\hcs\orc\ui\resources\black_box_x.gif skipped - don't know how to handle it
    [javac] C:\hcs\orc\nb\HCSBeans\src\com\hcs\orc\ui\resources\black_box_x_disabled.gif skipped - don't know how to handle it
    [javac] Compiling 34 source files to C:\hcs\orc\nb\HCSBeans\build\classes
    [javac] Using external javac compiler
    [javac] Compilation arguments:
    [javac] '-d'
    [javac] 'C:\hcs\orc\nb\HCSBeans\build\classes'
    [javac] '-classpath'
    [javac] 'C:\hcs\orc\nb\HCSBeans\build\classes;C:\hcs\orc\nb\CommonLibrary\dist\CommonLibrary.jar;C:\Program Files (x86)\NetBeans 7.2\platform\modules\ext\swing-layout-1.0.4.jar'
    [javac] '-sourcepath'
    [javac] 'C:\hcs\orc\nb\HCSBeans\build\empty'
    [javac] '-target'
    [javac] '1.5'
    [javac] '-encoding'
    [javac] 'windows-1252'
    [javac] '-g'
    [javac] '-source'
    [javac] '1.5'
    [javac]
    [javac] The ' characters around the executable and arguments are
    [javac] not part of the command.
    [javac] Files to be compiled:
    [javac]     C:\hcs\orc\nb\HCSBeans\src\com\hcs\orc\ui\BindingHandler.java
    [javac]     C:\hcs\orc\nb\HCSBeans\src\com\hcs\orc\ui\JRadioButtonUpdatable.java
    [javac]     C:\hcs\orc\nb\HCSBeans\src\com\hcs\orc\ui\JTextAreaSizeFix.java
    [javac]     C:\hcs\orc\nb\HCSBeans\src\com\hcs\orc\ui\ORCAssignmentPanel.java
    [javac]     C:\hcs\orc\nb\HCSBeans\src\com\hcs\orc\ui\ORCCheckBox.java
    [javac]     C:\hcs\orc\nb\HCSBeans\src\com\hcs\orc\ui\ORCLabel.java
    [javac]     C:\hcs\orc\nb\HCSBeans\src\com\hcs\orc\ui\ORCLabelBeanInfo.java
    [javac]     C:\hcs\orc\nb\HCSBeans\src\com\hcs\orc\ui\ORCPanel.java
    [javac]     C:\hcs\orc\nb\HCSBeans\src\com\hcs\orc\ui\ORCPanelBeanInfo.java
    [javac]     C:\hcs\orc\nb\HCSBeans\src\com\hcs\orc\ui\ORCRadioButton.java
    [javac]     C:\hcs\orc\nb\HCSBeans\src\com\hcs\orc\ui\ORCRadioButtonBeanInfo.java
    [javac]     C:\hcs\orc\nb\HCSBeans\src\com\hcs\orc\ui\ORCRadioButtonGroup.java
    [javac]     C:\hcs\orc\nb\HCSBeans\src\com\hcs\orc\ui\ORCRadioButtonGroupBeanInfo.java
    [javac]     C:\hcs\orc\nb\HCSBeans\src\com\hcs\orc\ui\ORCScrollPane.java
    [javac]     C:\hcs\orc\nb\HCSBeans\src\com\hcs\orc\ui\ORCScrollPaneBeanInfo.java
    [javac]     C:\hcs\orc\nb\HCSBeans\src\com\hcs\orc\ui\ORCSeparator.java
    [javac]     C:\hcs\orc\nb\HCSBeans\src\com\hcs\orc\ui\ORCSeparatorBeanInfo.java
    [javac]     C:\hcs\orc\nb\HCSBeans\src\com\hcs\orc\ui\ORCSplitPane.java
    [javac]     C:\hcs\orc\nb\HCSBeans\src\com\hcs\orc\ui\ORCSplitPaneBeanInfo.java
    [javac]     C:\hcs\orc\nb\HCSBeans\src\com\hcs\orc\ui\ORCTabbedPane.java
    [javac]     C:\hcs\orc\nb\HCSBeans\src\com\hcs\orc\ui\ORCTabbedPaneBeanInfo.java
    [javac]     C:\hcs\orc\nb\HCSBeans\src\com\hcs\orc\ui\ORCTable.java
    [javac]     C:\hcs\orc\nb\HCSBeans\src\com\hcs\orc\ui\ORCTableBeanInfo.java
    [javac]     C:\hcs\orc\nb\HCSBeans\src\com\hcs\orc\ui\ORCTextArea.java
    [javac]     C:\hcs\orc\nb\HCSBeans\src\com\hcs\orc\ui\ORCTextAreaBeanInfo.java
    [javac]     C:\hcs\orc\nb\HCSBeans\src\com\hcs\orc\ui\ORCTextField.java
    [javac]     C:\hcs\orc\nb\HCSBeans\src\com\hcs\orc\ui\ORCTextFieldBeanInfo.java
    [javac]     C:\hcs\orc\nb\HCSBeans\src\com\hcs\orc\ui\ORCTextPane.java
    [javac]     C:\hcs\orc\nb\HCSBeans\src\com\hcs\orc\ui\ORCTextPaneBeanInfo.java
    [javac]     C:\hcs\orc\nb\HCSBeans\src\com\hcs\orc\ui\RoundButtonBorder.java
    [javac]     C:\hcs\orc\nb\HCSBeans\src\com\hcs\orc\ui\TextLabelUI.java
    [javac]     C:\hcs\orc\nb\HCSBeans\src\com\hcs\orc\ui\TextTransfer.java
    [javac]     C:\hcs\orc\nb\HCSBeans\src\com\hcs\orc\ui\TouchButton.java
    [javac]     C:\hcs\orc\nb\HCSBeans\src\com\hcs\orc\ui\TouchButtonUpdatable.java

除了编译错误,我看不出有什么不同。

其他注意事项:

  1. 删除并重新签出两个项目的源代码 来自 SVN。
  2. 比较 Java 的版本。两者都是 32 位 Java 1.5.0_22。我知道这已经过时了,但我们有客户坚持这样做。
  3. 在 CommonLibrary 中只有一个对 @SuppressWarning 的引用,而在 HCSBeans 中没有。
  4. 我们在构建 CommonLibrary 时使用了 annotations.jar 和 jsr305.jar,但是它们没有与它打包,也没有被 HCSBeans 引用。构建后它们应该不是必需的。
  5. 我们的笔记本电脑是 64 位的,而构建系统是 32 位的,但两个 Java 安装都是 32 位的。
  6. 所有计算机都是 MS Windows。

更新

我将构建服务器切换为使用 Java 1.6 编译 HCSBean 并且代码编译(在删除了对 SwingUtilities2 的未使用导入之后),但如果我将其切换回 Java 1.5,它仍然会失败并出现相同的错误。我开始怀疑 Java 1.5 编译器有问题。

更新 2

一位同事发现了实际差异。不知道为什么会发生,但这是生成的构建之间的差异。在我们的笔记本电脑上,CommonLibrary.jar MANIFEST.MF 文件包含以下行:

Class-Path: lib/annotations.jar lib/jsr305.jar

这意味着在构建 HCSBeans 项目时,它会找到它需要的 annotations.jar 文件。但是,当我们在构建服务器上构建时,这个 Class-Path 行不存在。不知道为什么,但这是下一个调查路线。

【问题讨论】:

  • 是否可以在构建机器上重新安装java(或者在单独的位置重新安装,我不知道在Windows上是否可以)?编译器错误非常严重,所以我想先尝试一下。
  • 在您的开发笔记本电脑上,您是从 Netbeans 中运行 ant,还是从独立的 ant 安装中运行?如果从 Netbeans 中运行,在开发笔记本电脑上从独立 ant 运行时是否会遇到相同的错误?
  • 在笔记本电脑上独立运行并在 Netbeans 中运行。结果相同。
  • @Disco3 我安装了 JDK 1.5.0_u15 并得到了相同的结果。现在我真的很困惑。

标签: java ant compiler-errors hudson findbugs


【解决方案1】:

所以我们发现了问题。我们的笔记本电脑安装了 NetBeans(即使我们不是直接从 NetBeans 构建)正在使用 CopyLibs 构建 jar 文件,这会将所需的行添加到 Manifest.MF 文件中:

Class-Path: lib/annotations.jar lib/jsr305.jar

但是,我们的构建服务器没有安装 NetBeans,它使用 j2seproject1:jar 来构建 jar 文件。

解决方案是在我们的构建服务器(对于那些感兴趣的人来说是 Hudson)上构建时将其添加到 -D Javac 属性中:

libs.CopyLibs.classpath=C:\\Documents and Settings\\stephen\\.hudson\\jobs\\ORC Trunk\\workspace\\orc\\lib\\netbeans\\org-netbeans-modules-java-j2seproject-copylibstask.jar

现在我们的笔记本电脑和构建服务器都在使用 CopyLibs 并且它们都可以编译。

哎呀!真是一团糟。

感谢一路上给我指点的人 (@Peter-Eliot & @Disco3)。

【讨论】:

    【解决方案2】:

    看起来该库使用的是 FindBugs 版本的 SuppressWarning,而不是 java.lang 版本。 @SuppressWarning@java.lang.SuppressWarning 和/或删除 FindBugs 版本的 SuppressWarning 的导入,看看是否能解决问题?

    还可以尝试将 FindBugs 作为库添加到 hudson 查看的类路径中。看起来就像在您的开发人员机器上使用 NetBeans 构建的一样,如果 Netbeans 将 FindBugs 偷偷带入 ant 使用的类路径,我不会感到震惊

    【讨论】:

    • 我们将 \@SuppressWarnings 引用为 \@edu.umd.cs.findbugs.annotations.SuppressWarnings(...),因此 Java 不应该混淆 java.lang 和 edu.umd。 cs.findbugs.annotations。删除 \@SuppressWarning 的 FindBugs 版本可能会修复编译问题,但会使 FindBugs 对我们毫无用处(太多警告,我们将一遍又一遍地检查)。谢谢,但我正在寻找一个可以使用 FindBugs \@SuppressWarnings 并编译的解决方案。
    • 添加了另一个可能的解决方案——它可能是 Netbeans 和 Hudson 之间的类路径问题
    • 两个类路径都显示在上面的输出中,对我来说看起来相同(减去根目录)。我应该说我现在在命令行上运行这两个 Ants(以删除 Netbeans 和 Hudson 的变量)。
    • 两台机器上运行的ant命令行输出是否与问题中粘贴的文字完全一致?具体来说,它还在开发笔记本电脑上使用C:\Program Files (x86)\NetBeans 7.2\platform\modules\ext\swing-layout-1.0.4.jar',在Hudson box上使用C:\Documents and Settings\stephen\.hudson\jobs\ORC Trunk\workspace\orc\lib\swing-layout-1.0.4.jar吗?
    • 彼得,很好。我在笔记本电脑上修复了这个问题,使其与构建系统匹配:[javac] 'C:\hcs\orc\nb\HCSBeans\build\classes;C:\hcs\orc\nb\CommonLibrary\dist\CommonLibrary.jar;C:\hcs\orc\lib\swing-layout-1.0.4.jar',但这并没有在笔记本电脑上重现故障。
    最近更新 更多