Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
Description
Hi all,
I'm trying to setup a Maven project for a custom nar and from looking at
the other nars I created something like the following:
1) parent project with a pom that has two modules
2) a jar project where the main code lives, the pom for this project has a
parent of the pom referenced in #1
3) a nar project that has a dependency on #2 and a parent of:
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nar-bundle-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
Now all three of my poms had a version of 0.1-SNAPSHOT by default, so my
nar project had something like this:
<artifactId>example-nar</artifactId>
<version>0.1-SNAPSHOT</version>
<packaging>nar</packaging>
When I ran mvn clean install from the root, the jar built fine, and when it
hit the nar project it failed with this:
The following artifacts could not be resolved:
org.apache.nifi:nifi-api:jar:0.1-SNAPSHOT,
org.apache.nifi:nifi-processor-utils:jar:0.1-SNAPSHOT
For some reason it used the version of my nar to look for the Nifi
artifacts, even though the dependencies I had declared in the jar project
were:
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-api</artifactId>
<version>0.0.1-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-processor-utils</artifactId>
<version>0.0.1-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
Then I changed the version in my nar pom from 0.1-SNAPSHOT to
0.0.1-SNAPSHOT and the build works fine and I'm able to deploy the nar no
problem.
Is this the expected behavior, or did I set these projects up wrong?
Thanks,
Bryan
++++++
As found here in maven docs:
http://maven.apache.org/guides/introduction/introduction-to-the-pom.html#Project_Aggregation
The following quote is key:
"One factor to note is that these variables are processed after inheritance as outlined above. This means that if a parent project uses a variable, then its definition in the child, not the parent, will be the one eventually used."