An EAR archive is used to deploy standalone EJBs, usually separated from the web application. Thus, there is no need for a web application to access these EJBs. The EJBs are still accessible though using EJB clients.
The exception can be prevented by adding your custom artifact type to the artifactTypeMappings configuration. There is a mini-guide on how to do that in the modules configuration section.
By default, the plugin will always generate a display-name with the id of the project if a custom one is not provided through configuration. If for some reason you don't want any display-name at all, just use the ${null} value instead.
By default, the EAR plugin generates sensible defaults for all the JavaEE dependencies it finds in the current project. The modules configuration is useful if you need to customize something such as the bundle location, context root, etc.
Adding a module entry with only the groupId and artifactId of a dependency is therefore useless.