【问题标题】:Maven dependency of type/classifier bin not showing up in runtime classpath类型/分类器 bin 的 Maven 依赖项未显示在运行时类路径中
【发布时间】:2011-09-24 13:21:07
【问题描述】:

我有一个项目正在使用我已上传到本地 Maven 存储库的工件,其中包含类型和分类器箱。我想在运行时依赖这个工件,并且想通过类路径引用文件。

作为参考,我的项目定义了一个依赖,例如:

<dependency>
  <groupId>my.site</groupId>
  <artifactId>binary-dependency</artifactId>
  <version>1.0</version>
  <type>bin</type>
  <classifier>bin</classifier>
</dependency>

当我运行mvn dependency:build-classpath 时,我可以看到列出的工件。但是,在我的代码中,调用System.println("java.class.path") 不包括这个,无论是在 Eclipse 中使用 m2e 还是在命令行上通过 Maven。

知道为什么这不会出现在类路径中吗?

【问题讨论】:

    标签: java maven dependencies classpath


    【解决方案1】:

    是罐子吗?然后类型应该是jar。

    如果它不是 jar,你希望它如何添加到类路径中?

    【讨论】:

    • 不,它实际上是我想使用的可执行文件。在本例中,它是 Selenium 2 所依赖的 chromedriver 二进制文件(我将其省略以保持通用性)。我的想法是,既然我可以确保它作为依赖项被拉到文件系统中,我可以通过类路径系统属性找到它的位置并告诉 Selenium 2 在那里寻找它。
    • 为了澄清(没有意识到按回车键会提交),我认为这只是通过 Maven 依赖项获取应用程序运行时依赖项的绝对路径的聪明方法。如果由于它不是jar而不会将其添加到classpath变量中,那么我会想出另一种方法。我认为我的困惑更多是 Maven 会通过依赖插件告诉您它是类路径的一部分,但是该文件在执行时不会出现在类路径中。
    • 嗯,您可以使用 Maven 下载此依赖项,但是将其存储在哪里以及以后如何使用它,完全取决于您。但它不能添加到类路径中。如果你想要它在类路径中,你可以将它包装在 jar 中(毕竟 jar 只是一个存档)。
    • 感谢您的信息。我确实试过把它包在一个罐子里,但失败了,尽管我不想走那条路,因为这意味着要取出罐子。我最终寻求将工件打包为资源并将其写入 Maven 的项目构建目录的解决方案。
    • 再次感谢您的帮助:)
    猜你喜欢
    • 2021-11-06
    • 2011-06-16
    • 2013-09-03
    • 1970-01-01
    • 1970-01-01
    • 2012-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多