web-dev-qa-db-ja.com

ビルド用の人気のあるフォルダー構造

プロジェクト内でビルドアセットとソースコードを整理するための一般的または最良の方法は何ですか?

25
Xian

個人的に私は使用します

/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

それは私たちにとってはうまくいきますが、私はそれが最高だとは思いません。 。netについての場合は、 treesurgeon も参照できます。彼らはそれ自体を次のように説明しています。

新しい開発ツリーを設定するのに数日を費やしたことがありますか?いくつかの開発ツリーを設定するのに数日を費やしたことがありますか?一連のベストプラクティスを使用して、すべての開発ツリーを完成させるために何週間も費やしたことがありますか?

上記の答えのいずれかに対する答えが「はい」の場合、あなたはツリー外科医を好きになるでしょう!

Tree Surgeonは、.NET開発ツリージェネレーターです。プロジェクトの名前を付けるだけで、数秒で開発ツリーがセットアップされます。それ以上に、新しいツリーには、何年にもわたるビルドエンジニアリングの経験が組み込まれています。

2
olle

私が持っています

/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

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

最終的には、プロジェクト自体、およびANTとMavenのどちらを使用するかに応じて、少し柔軟にする必要があります。私はANTを使用しており、ANTスクリプトを/ buildに配置していますが、一部のプロジェクトでは他の場所(/ website /など)に表示されています。

19
JeeBee

一般に:

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)
12
Martin Wickman

私は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.
5
Romain Linsolas

たとえば、.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
4
Xian

このフォルダ構成は、 xLimの概念 の進化を表しています。

このオープンソースプロジェクト で確認できます。

Build           - ignored from version control
  Artifact      - build artifacts (grabbed by CC.NET from here)
  Package       - generated Zip or install packages
  Test          - all assemblies for unit tests
  Help          - autogenerated documentation
Resource
  Build         - plugins and extensions for NAnt/MSBuild
  Library       - 3rd party dependencies
  Tool
    FxCop
    ILMerge          
    NCover
    NCoverExplorer
    NUnit
    SHFB
    Wix
Samples
  SampleProject1
  SampleProject2  
Source
  Project1
  Project2

  GlobalAssemblyInfo.cs
  VersionAssemblyInfo.cs   - integration server updates this one

Test
  Project1.Tests
  Project2.Tests        

Solution.build        - primary build file
Solution.ccnet        - CruiseControl adapter for the build file
Solution.sln          - Visual Studio

go.cmd                - shortcut for launching the build file locally
readme.txt            - licenses and overview
SharedKey.snk         - for strong naming
3
Rinat Abdullin

Netbeans IDEプロジェクトを整理する方法が好きです。新しいプロジェクトを開始するだけで、デフォルトの開発ツリーとantスクリプトがセットアップされます。

0
user22940

私にとって、それはプロジェクトのサイズに依存します。小さなプロジェクトの場合、単一のMakefile、/ srcおよび/ includeディレクトリを持つプロジェクトディレクトリが適切に機能することがわかりました。

0
jdmartin86

.NETプロジェクトの場合は、 ProjectScaffold を確認し、この下での議論 要点

0
Rafał Kłys