Hello,
My application Demoiselle declares the following to be a Demoiselle application:
<properties>
<demoiselle.framework.version>2.5.0-RC1</demoiselle.framework.version>
</properties>
<parent>
<groupId>br.gov.frameworkdemoiselle</groupId>
<artifactId>demoiselle-servlet-parent</artifactId>
<version>2.5.0-RC1</version>
</parent>
While doing this, I understand that the parent of my application becomes this: link
On this face there are several dependencies listed in the dependencyManagement section. What is the relationship of these dependencies to my application? They are not automatically embedded into the application, neh? And when I declare a dependency like demoiselle-jpa (which is already in the parent pom), I do not need to declare version because Maven will pull the parent pom version, right?
Now complicating ... in the pom of the application we also have the following:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.jboss.bom</groupId>
<artifactId>eap6-supported-artifacts</artifactId>
<version>6.3.0.GA</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
This refers to a Red Hat BOM file that lists all scripts available in JBoss EAP 6.3 *. So, since my application will use JBoss EAP 6.3, I do not have to worry about knowing the exact versions of the JavaEE libraries (cdi, jsf etc etc).
* BOM file: link
Now the question: Some of these libraries (eg, weld-core) appear in both the BOM file and the Demoiselle parent. Is this a problem? In this case, because these JavaEE dependencies are marked with scope provided, I know that at runtime the application will use the versions available in JBoss. But in other contexts (compilation, unit testing) of whom maven will pull the dependencies? BOM or Demoiselle parent? Is there any version conflict when trying to include libraries of different versions?
Finally, what is the need to use Demoiselle parent pom? Would not it be better to add the necessary Demoiselle libraries to your project one by one, so you only have what it takes?
Sorry if the issues were complex, but the ultimate ultimate goal is to perform dependency management of my project as best as possible, avoiding any risk of version conflicts or different versions used in different contexts.
Thank you!