问题
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.
回答1:
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.
回答2:
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
来源:https://stackoverflow.com/questions/26393332/getting-the-pom-for-name-is-invalid-transitive-dependencies-if-any-will-no