A project represents artifacts that can be built and deployed as a unit, deploy can be executed on many instances and many environments. Each project is mapped to exactly one build workflow and one deploy workflow. Each project is also mapped to one build instance, and one or more deploy instances. At workflow execution time (build or deploy), the user selects one or more of the available instances configured on the project, and an environment.
You will create Projects for specific artifact(s). For example, SOA Suite composite, OSB Project, Java EE Archive (EAR), JAR File, Application server configuration files, EBS customizations etc. will represent FlexDeploy project. Each such project behaves different due to selection of build and deploy workflows. Build and deploy workflows are reusable which allows you to manage all artifacts of specific type in consistent manner. For example, you can create 10 Projects for 10 SOA Composites, all of which will use mostly similar configuration except location of code in SCM and some other properties for deployment target.
Projects can be created to support Partial Deployments, which means that you can select subset of artifact files for build and deploy operations. This is available for specific technology targets like EBS, Salesforce, Oracle Database, Oracle BI, Oracle MFT, Oracle Forms etc. In other cases you will deploy all artifacts of the project as a single unit. The Partial deploy model is a very convenient option where available. Note that FlexDeploy will still allow you to track artifacts in Partial Deployments mode but that will be at individual file level instead of the entire project being consider a single unit in the Full Deployment model.
Utility Projects are for adhoc script executions like Start and Stop server. Utility project do not have build and deploy life cycle and hence do not have versions. The Utility needs a workflow and an Instance. Details are provided later in this section.