如何从Eclipse中的根“classes”和“test-classes”文件夹中过滤文件?

时间:2011-01-07 12:31:19

标签: java eclipse tomcat build clearcase

我在我的应用程序中使用ClearCase,它会生成一整套“.copyarea.db”文件(每个文件夹中有一个)。
这些会在发布到Tomcat时导致冲突,因为Eclipse会将“classes”和“test-classes”文件夹捆绑到一个JAR中(不知道为什么会这样做 - 因为不需要提供测试类)应用程序服务器) 任何具有相同名称的文件夹在类和测试类分支中都会有一个单独的.copyarea.db

我设法通过在.copyarea.db首选项页面上的过滤资源中添加“Java->Compiler->Building->Output Folder”来解决此问题。这会阻止文件出现在源输出(包/类文件夹)中,绝大多数情况下。

但是仍然存在根文件夹的问题,即“target/classes/.copyarea.db”和“target/test-classes/.copyarea.db”。
这些文件不会被过滤,因为它们不是编译任务的一部分 手动删除文件也无济于事,因为Eclipse希望找到它们而不是。

如何从根“classes”和“test-classes”文件夹中排除这些“.copyarea.db”文件?

2 个答案:

答案 0 :(得分:2)

此文件.copyarea.db is created in each directory of a web view(通过CCRC,ClearCase的远程客户端)。

最简单的解决方案是不要置于源代码控制目录类和测试类。
然后,作为illustrated by this technote

  

否则,不应控制目录   如果目录未受控制,则永远不应创建其中的.copyarea.db文件。
  如果目录被意外添加到源代码管理中,将来可以通过向忽略列表添加类来防止这种情况。这样可以避免在共享期间将目录传递给ClearCase。

由于您通常不会对在类和测试类下生成的二进制文件进行版本控制,删除这些文件夹,并手动再次添加它们(将它们保密到您的视图中)是一种可接受的解决方案。

如果这些文件夹不受版本控制,那么copyarea.db来自包含它们的版本化文件夹,并已复制到目标文件夹。
在这种情况下,您只需删除copyarea.db个文件即可 但是既然你说Eclipse“希望找到它们而不是”,我认为那些“classes”和“test-classes”文件夹不是私人文件夹。

答案 1 :(得分:0)

关于

  

这些会在发布到Tomcat时导致冲突,因为Eclipse会将“classes”和“test-classes”文件夹捆绑到一个JAR中(不知道为什么会这样做 - 因为不需要在应用程序服务器上提供测试类)

您可以在项目属性,构建路径,订单和导出中配置它,或使用mavenm2eclipse