I have recently upgraded to JAXB 2.2.11 and noticed in my Eclipse console the following message:
10/15/14, 11:42:46 PM GMT+2: [INFO] Creating new launch configuration
10/15/14, 11:42:58 PM GMT+2: [INFO] C:\Projects\workspaces\mj2p\maven-jaxb2-plugin-project\tests\JAXB-1044
10/15/14, 11:42:58 PM GMT+2: [INFO] mvn -B -X -e clean install
10/16/14, 12:09:07 AM GMT+2: [WARN] The POM for com.sun.xml.bind:jaxb-impl:jar:2.2.11 is invalid, transitive dependencies (if any) will not be available: 1 problem was encountered while building the effective model for com.sun.xml.bind:jaxb-impl:2.2.11
[ERROR] 'dependencyManagement.dependencies.dependency.systemPath' for com.sun:tools:jar must specify an absolute path but is ${tools.jar} @
10/16/14, 12:09:07 AM GMT+2: [WARN] The POM for com.sun.xml.bind:jaxb-xjc:jar:2.2.11 is invalid, transitive dependencies (if any) will not be available: 1 problem was encountered while building the effective model for com.sun.xml.bind:jaxb-xjc:2.2.11
[ERROR] 'dependencyManagement.dependencies.dependency.systemPath' for com.sun:tools:jar must specify an absolute path but is ${tools.jar} @
10/16/14, 12:09:07 AM GMT+2: [WARN] The POM for com.sun.xml.bind:jaxb-core:jar:2.2.11 is invalid, transitive dependencies (if any) will not be available: 1 problem was encountered while building the effective model for com.sun.xml.bind:jaxb-core:2.2.11
[ERROR] 'dependencyManagement.dependencies.dependency.systemPath' for com.sun:tools:jar must specify an absolute path but is ${tools.jar} @
What puzzles me is that I am not getting this warning in console. The pom
s in question also seems to be correct. I am sure I am using the same Maven installation in the console and in Eclipse (m2e
). The repository also seems to be correct.
Does anyone happen to know, what could be causing this?
Please note that this is not a duplicate for (almost identically-named) question:
- The POM for <name> is invalid, transitive dependencies (if any) will not be available
This question is about the differences between Maven execution in the console and from the Eclipse.
How do I determine which POM contains missing transitive dependency? Ans. If its already there in Maven local repository, We can add that as a dependency in the project pom file with its Group Id, Artifact Id and version.
Multiple transitive dependencies can be excluded by using the <exclusion> tag for each of the dependency you want to exclude and placing all these exclusion tags inside the <exclusions> tag in pom. xml. You will need to mention the group id and artifact id of the dependency you wish to exclude in the exclusion tag.
Transitive dependency means that if A depends on B and B depends on C, then A depends on both B and C. Sometimes, transitivity brings a very serious problem when different versions of the same artifacts are included by different dependencies. It may cause version mismatch issues in runtime.
The pom
for com.sun.xml.bind.jaxb-impl
has com.sun.xml.bind:jaxb-parent
has its parent.
jaxb-parent pom
has the following section:
<profile>
<id>default-tools.jar</id>
<activation>
<file>
<exists>${java.home}/../lib/tools.jar</exists>
</file>
</activation>
<properties>
<tools.jar>${java.home}/../lib/tools.jar</tools.jar>
</properties>
</profile>
<profile>
<id>default-tools.jar-mac</id>
<activation>
<file>
<exists>${java.home}/../Classes/classes.jar</exists>
</file>
</activation>
<properties>
<tools.jar>${java.home}/../Classes/classes.jar</tools.jar>
</properties>
</profile>
In your Eclipse, neither of the profile seems to be activated due to which ${tools.jar}
does not have a value.
One possibility could be JAVA_HOME
value is set incorrectly.
After further investigation it appears that I have the same problem as in this question:
Maven not picking JAVA_HOME correctly
The solution thanks to @rustyx (please upvote that answer):
To fix the issue you need to start Eclipse using the JRE from the JDK by adding something like this to
eclipse.ini
(before-vmargs
!):
-vm
C:\<your_path_to_jdk170>\jre\bin\javaw.exe
the pom for com.sun.xml.bind:jaxb-osgi:jar:2.2.10 is invalid issue. worked for me after updating the rest-assured version to 4.1.1.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With