So, I still believe that maven needs improvements in this sense. In my opinion:
- The <scope> element should be limited to tell only if the dependency is required during run-time only or during compilation also. Whenever to include the dependency in an assembly or not should be delegated to the the descriptor of the assembly. The EAR POM by example. - A new sub element of the <dependency> element should be added to specify if the code of the artifact supports that the classes in the dependency can be loaded by a different class loader or not. - The content of the packages like EAR, that are not intended to be depended upon, should not be determined by the <dependencies> element but by a new element with a different structure. A structure that allows to exclude a single and a bundle of transitive dependencies from both, a single component and a group of them. To use the same structure to specify two so different things causes ambiguities and/or limitations.
