用于构建的流行文件夹结构

Xia*_*ian 25 directory build-process

我想知道在项目中组织构建资产和源代码的流行或最佳方法是什么?

Jee*_*Bee 19

我有

/src    - source files (test files are within a package 'test' here, or 'test' subpackage of what is being tested)
/lib    - required libraries
/doc    - text documentation and development notes
/build  - where we build (each separate build item within a subfolder here)
/conf   - configurations (each config, production, test, developer, etc gets a folder in here, and when building Jars and Wars the correct set is copied across)
/extras - other stuff
/extras/resources - resources that should be included within generated Jars, e.g., icons
Run Code Online (Sandbox Code Playgroud)

/websites - Web related content and configurations (each website in its own folder here)
/websites/$site/webcontent - All the web content here
/websites/$site/conf - website related configuration files here (instead of /conf)
/websites/$site/build.xml - ANT build script for website that creates a war, etc

(remember you might have an admin site and a public site for a single project, hence the multi-site configuration within a single project, or even site v1 and site v2, etc)
Run Code Online (Sandbox Code Playgroud)

最后,根据项目本身,以及是否使用ANT或Maven,您必须有点灵活.我使用ANT,并将ANT脚本放在/ build中,但它们已经出现在某些项目的其他地方(例如/ sites /中的某些项目).


Mar*_*man 12

一般来说:

src/      - source files
src/tests - unit tests
doc/      - documentation
res/      - static resources (textures, locale database, level definitions etc)
build/    - tools needed to build the system
            project specific libraries and compilers
Makefile  - the makefile (make, test, clean etc)
Run Code Online (Sandbox Code Playgroud)


Xia*_*ian 5

例如,我将以下内容用于我的 .Net 风格项目;

/build/reports  - reports and logs from the build process
/build/artifacts  - all output of the build process is copied here
/src/  - all solution source code
/lib/  - 3rd party or other build dependencies
/tools/...  - all other helper tools used in the build process
/tools/nant  - example tool
/tools/nunit  - example tool
/myProject.sln  - visual studio solution file (or other IDE)
/default.build  - nant build file
Run Code Online (Sandbox Code Playgroud)


Rom*_*las 5

由于我只处理Java项目,并且所有这些项目都是"Mavenized",因此我使用Maven定义约定来实现项目结构.

基本上:

project
  src/main/java        --> source files
  src/main/resources   --> resources files (*.xml, *.properties, etc.)
  src/test/java        --> source files for tests.
  src/test/resources   --> resources files for tests.
Run Code Online (Sandbox Code Playgroud)


oll*_*lle 2

我个人使用

/client/projectname/trunk/source/Solution Name.sln
/client/projectname/trunk/source/Project.One
/client/projectname/trunk/source/Project.Two
/client/projectname/trunk/source/Project.Three
/client/projectname/trunk/source/SQL/
/client/projectname/trunk/source/SQL/SomeScript.sql
/client/projectname/trunk/libraries
/client/projectname/trunk/resources/Nunit
/client/projectname/trunk/resources/LLBLGEN
/client/projectname/trunk/documentation
/client/projectname/trunk/builds
Run Code Online (Sandbox Code Playgroud)

它对我们来说效果很好,但我不认为这是最好的。如果是关于 .net 的,您还可以看看treesurgeon他们自己将其描述为:

您是否曾花费几天时间建立新的开发树?您是否曾经花费数天时间建立多个开发树?您是否曾花费数周的时间尝试使用一组最佳实践来完善您的所有开发树?

如果以上任何一个答案的答案是“是”,那么您一定会喜欢树外科医生!

Tree Surgeon 是一个 .NET 开发的树生成器。只需给它您的项目名称,它就会在几秒钟内为您建立一个开发树。更重要的是,您的新树内置了多年积累的构建工程经验。