2012-03-29 86 views
2

我们的一些开发人员更喜欢Eclipse,有些更喜欢Netbeans。 我们希望两个文件具有相同的层次结构,以便它保存在subversion的一个目录下。为Eclipse和Netbeans使用相同的Java层次结构

目录结构:

src 
| +main 
| | +java 
| | +com 
| |  +mycompany 
| |  +utils 
| |   +Bar.java 
| |   +Foo.java 
| +test 
| | +java 
| | +com 
| |  +mycompany 
| |  +utils 
| |   +BarTest.java 
| |   +FooTest.java 
bin 
| +com 
| | +mycompany 
| | +utils 
| |  +Bar.class 
| |  +Foo.class 

这不仅可用于Netbeans很好,但它似乎是一个标准。 (http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html) 我遇到的问题是,在Eclipse中我可以看到所有这个层次结构,但它抱怨具有包声明的文件Bar.java(上面):“package com.mycompany.utils;”应该声明为“package main.java.com.mycompany.utils;”,这不是我想要的。 如何配置Eclipse以识别此层次结构?

感谢,
Chelmite

回答

0

Eclipse是无法识别正确的类层次结构,因为源文件夹的定义在它的元数据文件,这你可能没有检查到SVN。既然你似乎在使用Maven,我建议你让开发者安装m2e,它本地识别并处理Maven项目,不需要额外的设置。

Indigo和Helios带有m2e安装的afaik。

如果你想手动修复了这些源代码树,然后只需右键单击该项目,并定义了两个源文件夹

src/main/java 
src/test/java 
+0

如果我打开项目的属性,请转到Java Build Path,然后选择Source选项卡,它会显示我的src文件夹。如果我点击“编辑”,如果我将“src”更改为“src/main”或“src/main/java”,它会抱怨文件夹已经存在! – Chelmite 2012-03-29 20:29:50

+0

此问题已经存在的文件夹在这里解决:http://stackoverflow.com/questions/11976223/how-to-deal-with-missing-src-test-java-source-folder-in-android-maven-project – wilsonmichaelpatrick 2013-03-23 22:44:55

0

你需要编辑classpathentry。尝试编辑.classpath文件的Eclipse项目,并将其更改为类似如下:

<classpathentry kind="src" output="bin" path="src/main/java"/> 
+0

我试过了: 但它仍然抱怨说com.mycompany.utils应该是src.main.com.mycompany.utils – Chelmite 2012-03-29 20:44:20

+0

你有没有定义任何其他的源文件夹?我的.classpath看起来像这样: ' \t \t \t \t ' 该项目在包资源管理器视图中看起来像[this](http://i.imgur.com/ja7S8.png)。 – 2012-03-30 02:44:41

0

不匹配的是,Eclipse项目配置了src为Java源代码的根路径,其实当你在该文件夹下有两个独立的源代码树。要正确配置:

  1. 打开项目属性(通过右键单击)左侧
  2. 选择Java构建路径,则来源标签右侧
  3. 删除src为源文件夹
  4. 添加src/main/javasrc/test/java作为源文件夹

告诉Eclipse该项目有两个源文件夹,它会将它们一起编译到bin文件夹中。

注意:强烈建议将.project.classpath文件和.setting s文件夹检入svn,以便任何将项目签出到Eclipse中的人都会自动获得此配置。

如果需要,您可以为每个源文件夹配置单独的构建输出位置(而不是都将进入bin)。