Keep in mind these best practices when developing shared Java EE libraries and optional packages: Use shared Java EE Libraries when you want to share one or more Java EE modules (EJBs, Web Applications, Enterprise Applications, or plain Java classes) with multiple Enterprise Applications. If you need to deploy a standalone Java EE module, such as an EJB JAR file, as a shared Java EE library, package the module within an Enterprise Application. Doing so avoids potential URI conflicts, because the library URI of a standalone module is derived from the deployment name. If you choose to deploy a shared Java EE library as a standalone Java EE module, always specify a known deployment name during deployment and use that name as the URI in referencing applications. Use optional packages when multiple Java EE archive files need to share a set of Java classes. If you have a set of classes that must be available to applications in an entire domain, and you do not frequently upda...