推荐的源代码管理目录结构?
我将使用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
文件夹,用于要打包/部署的非源代码以及主要的源代码内容(例如属性文件) ,资源包等。里程可能与此不同。