An enterprise application project ties together the resources that are required to deploy a J2EE enterprise application.
An enterprise application project contains a set of references to other J2EE modules and Java™ projects that are combined to compose an EAR file. These projects can be Web modules, EJB modules, application client modules, connector modules, general utility Java JAR files, and EJB client JAR files. Enterprise application projects created in the workbench include a deployment descriptor, as well as files that are common to all J2EE modules that are defined in the deployment descriptor.
When a J2EE module project is created, it can be associated with an enterprise application project. The project wizards aid this by allowing you to specify a new or existing enterprise application project. Enterprise application projects are exported as EAR (enterprise archive) files that include all files defined in the Enterprise Application project as well as the appropriate archive file for each J2EE module or utility JAR project defined in the deployment descriptor, such as Web archive (WAR) files and EJB JAR files.
An enterprise application can contain utility JAR files that are to be used by the contained modules. This allows sharing of code at the application level by multiple Web, EJB, or application client modules. These JAR files are commonly referred to as utility JAR files. The utility JAR files defined for an enterprise application project can be actual JAR files in the project, or you can include utility Java projects that are designated to become the utility JAR files during assembly and deployment.
To start developing J2EE applications, you typically first create an enterprise application project to tie together your Web, EJB, and application client modules. The enterprise application project is used to compose an entire application from the various modules. Since no source code is built directly into an enterprise application, these projects are not Java projects, and they are not compiled by the Java builder.