我将在新的J2EE Web应用程序上使用Subversion进行源代码控制。您将建议使用哪种目录结构来组织代码,测试和文档?
我通常有
1 2 3 4 5 6
| 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下的示例如下所示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| /project
/trunk
/src
/doc
/...
/branches
/feature1
/src
/doc
/...
/feature2
/src
/doc
/... |
我在SO上发现了一些老问题,这些问题可能会让您感兴趣:
-
什么是php应用程序的良好标准代码布局
-
包含指向有关Web应用程序的可伸缩和灵活目录结构的文章的链接(尽管着重于PHP)
-
换句话说,如何构造Java应用程序:我应该将类放在哪里?
-
版本控制中的项目结构
为扩展Mendelt Siebenga的建议,我还将添加一个web目录(用于JSP文件,WEB-INF,web.xml等)。
测试应该放在一个名为test的文件夹中,该文件夹是主src文件夹的同级文件-这样,您的单元测试类可以与被测试的源代码具有相同的包名称(以减轻您遇到的情况)例如,要测试受保护的方法或类...请参阅JUnit FAQ,有关此问题的信息也应放在测试文件应该放在哪里?)。
我本人并没有太多用处,但是Maven项目还将在src文件夹旁边创建一个resources文件夹,用于要打包/部署的非源代码以及主要源代码-诸如属性文件,资源束之类的东西。您的里程可能与此不同。
我使用Eclipse创建J2EE Web应用程序,这将创建以下项目结构:
1 2 3 4 5
| WebAppName\\
\\lib
\\src
\\tests
etc... |
然后我将在我们的主干上创建一个名为WebAppNameProject的SVN文件夹。在此文件夹中,我将创建名为WebAppNameSource,Documentation等的文件夹。在WebAppNameSource文件夹中,我将放置由Eclipse生成的项目源。因此,我在SVN中将具有以下文件夹结构:
1 2 3 4 5 6 7
| \\svn\\trunk\\WebAppNameProject
\\WebAppNameSource
\\lib
\\src
\\tests
etc...
\\Documentation |
希望这会有所帮助。