推荐的源控制目录结构?

时间:2008-09-03 12:00:41

标签: java svn java-ee version-control code-organization

我将在新的J2EE Web应用程序上使用Subversion进行源代码控制。您建议使用什么目录结构来组织代码,测试和文档?

4 个答案:

答案 0 :(得分:14)

我通常有

Project Directory
  src - actual source
  doc - documentation
  lib - libraries referenced from source
  dep - installation files for dependencies that don't fit in lib
  db  - database installation script

在使用Visual Studio时,我不确定它在java世界中的工作原理是否相同。但我通常把东西放在src中的不同项目文件夹中。对于每个源项目,都有一个单独的测试项目。构建文件放在主项目目录中。我通常在那里放一个自述文件,记录如何设置项目,如果它需要的不仅仅是检查。

编辑:这是项目单一工作结帐的结构。对于修订控制系统中的每个分支/标记,它将被复制(请记住,在大多数SVN系统中,副本很便宜)。 Subversion下的上述示例如下所示:

/project
    /trunk
        /src
        /doc
        /...
    /branches
        /feature1
            /src
            /doc
            /...
        /feature2
            /src
            /doc
            /...

答案 1 :(得分:3)

答案 2 :(得分:2)

为了扩展Mendelt Siebenga的建议,我还要添加一个web目录(用于JSP文件,WEB-INF,web.xml等)。

测试应该放在名为test的文件夹中,该文件夹是主src文件夹的兄弟 - 这样,您的单元测试类可以与正在测试的源代码具有相同的包名(以便于在您想要测试受保护的方法或类的情况下,例如......请参阅JUnit FAQ for this,此问题也在Where should I put my test files?上。)

我自己没有太多用处,但是Maven项目还会在src文件夹旁边创建一个resources文件夹,用于非源代码,您希望与主要源代码一起打包/部署 - 诸如属性文件,资源包等内容。您的里程可能因此而异。

答案 3 :(得分:0)

我使用Eclipse创建J2EE Web应用程序,这将创建以下项目结构:

WebAppName\
    \lib
    \src
    \tests
    etc...

然后我会在我们的主干上创建一个名为WebAppNameProject的SVN文件夹。在这个文件夹中,我将创建名为WebAppNameSource,Documentation等的文件夹。在WebAppNameSource文件夹中,我将放置Eclipse生成的项目源。因此,我将在SVN中具有以下文件夹结构:

\svn\trunk\WebAppNameProject
    \WebAppNameSource
        \lib
        \src
        \tests
        etc...
    \Documentation 

希望这有帮助。