推荐的源代码管理目录结构?

时间:2020-03-05 18:46:59  来源:igfitidea点击:

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

解决方案

回答

我通常有

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
            /...

回答

我在SO上发现了一些老问题,这些问题可能对我们来说很有趣:

  • 换句话说,如何构造Java应用程序:我应该将类放在哪里?
  • 版本控制中的项目结构

回答

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

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

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

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

希望这可以帮助。

回答

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

测试应该放在名为" test"的文件夹中,该文件夹是主" src"文件夹的兄弟,这样,单元测试类可以与被测试的源代码具有相同的包名称(以减轻我们想要受保护的测试的情况)方法或者类,例如...有关此信息,请参见JUnit常见问题,以及有关如何将测试文件放在哪里的问题。)。

我本人并没有太多用处,但是Maven项目还将在src文件夹旁边创建一个resources文件夹,用于要打包/部署的非源代码以及主要的源代码内容(例如属性文件) ,资源包等。里程可能与此不同。