java - Ant 构建可以在一个系统上运行,而不能在另一个系统上运行

标签 java ant compiler-errors hudson findbugs

我们最近将 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,但它们没有与CommonLibrary一起打包,也没有被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 项目时,它会找到所需的注释.jar 文件。但是,当我们在构建服务器上构建时,该类路径行不存在。不知道为什么,但这是下一步的调查。

最佳答案

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

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

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

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

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)。

关于java - Ant 构建可以在一个系统上运行,而不能在另一个系统上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14343134/

相关文章:

ios - Facebook sdk 正在我的 IOS 设备上编译,但没有我的模拟器

javac错误 "code too large"?

java - 如何通过根据客户端名称替换 res 来为多个客户端构建我的项目

java - Webview显示本地HTML页面

java - Elasticsearch 1.5 没有queryapi的curl删除

Java NoClassDefFoundError 与 Google App Engine 项目引用

java - 如何将数组用作 double 类型?

linux - Qt 链接错误

java - 如何在android中解析列表?

java - 为什么依赖注入(inject)需要另一种语言?