仅编译项目中的一个类

时间:2011-11-29 14:54:14

标签: java eclipse debugging build compilation

我已经自动构建,我想只构建一个类(用于调试)。这可能吗?其他类已在build目录中编译,但可能不能在Eclipse下编译。

3 个答案:

答案 0 :(得分:3)

我认为你可以转到Project菜单并选择Build Working Set - >选择工作集。

选择新的,为您的集合命名,然后只选择您要构建的单个类。一旦完成它应该构建。

下次要构建时,转到Project菜单并选择Build Working Set - >以及您创建的集合的名称。

答案 1 :(得分:1)

我认为Eclipse足够聪明,只能重新编译那些以某种方式实际改变的类(即使其他类无法编译)。因此,如果您打开自动构建,编辑一个类并保存它,Eclipse将重新编译它。我怀疑Eclipse会重新编译整个代码库,例如 - 重命名给定类中的一个变量。

底线是:坚持自动构建

如果你有一些特殊的用例,那就很清楚它是什么。除此之外James's answer可能是你最好的选择。


我在Eclipse中为自己创建了一个小样本Maven项目(尽管它是一个Maven项目,Eclipse的自动构建工作正常,就像在Java项目中一样,没有魔法)。

.
|-- pom.xml
|-- src
|   `-- main
|       `-- java
|           |-- A.java
|           `-- B.java // B contains erroneous "stuff"
`-- target
    `-- classes
        |-- A.class // A compiles without a word
        `-- B.class // even though it contains errors 
                    // B compiles too ... weird

(请注意,在包/项目资源管理器窗口中,目标文件夹下没有列出任何内容。我可能想象的东西,但通常是类,其他东西都列在那里......不确定。)

答案 2 :(得分:0)

出于某种原因,当我选择Build Project时,当使用JRebel和自动构建时,eclipse不会重建我的类。作为一种解决方法,我添加了一个main方法,引用了我想要构建的另一个类(通过在main中的sys out中打印OtherClass.class),然后使用Run as Standalone运行main方法。

Web应用程序的2个文件部分。因此,一旦编译完成,tomcat就会有新的类文件而且我没有重启(由于许多模块需要15分钟)