Maven systemPath未添加到运行时类路径中

时间:2010-12-01 18:04:14

标签: maven-2 maven maven-plugin

我需要将JDK的tools.jar添加为项目依赖项。

将其设置为普通依赖项不起作用,因为在将其安装到Maven存储库时,它会向jar文件添加版本号。此后,当我需要需要tools.jar的东西在类路径中时,它会失败。

使用系统范围并使用<设置jar的路径systemPath>应该解决问题。但是,尽管在测试中jar被添加到类路径中,但在运行时它不是。

有解决方法吗?

顺便说一句,我添加了< useManifestOnlyJar> false< / useManifestOnlyJar>到surefireplugin,以便我可以看到类路径中的每个文件。

2 个答案:

答案 0 :(得分:3)

Maven是否在JDK中运行?

找出它正在运行的Java版本,

  

mvn -ver

将您的JAVA_HOME env变量设置为指向JDK。

答案 1 :(得分:1)

如果JDK中没有包含它,请使用系统范围,请参阅FAQ

<profiles>
  <profile>
    <id>default-tools.jar</id>
    <activation>
      <property>
        <name>java.vendor</name>
        <value>Sun Microsystems Inc.</value>
      </property>
    </activation>
    <dependencies>
      <dependency>
        <groupId>com.sun</groupId>
        <artifactId>tools</artifactId>
        <version>1.4.2</version>
        <scope>system</scope>
        <systemPath>${java.home}/../lib/tools.jar</systemPath>
      </dependency>
    </dependencies>
  </profile>
</profiles>