java - Maven - 在 jar 中包含引用的库

标签 java maven-2 jar osgi

我有用于发送邮件的 OSGi 包,所以它使用 mail-1.4.jar 中的 com.sun.smtp 包。但 OSGi 服务无权访问此 jar。

你能帮我吗,如何配置 Maven POM 文件,以便 mail-1.4.jar 将包含在我的 bundle jar 中,以便 OSGi 服务可以使用它?

编辑

错误是:
javax.mail.NoSuchProviderException:无法找到协议(protocol)的提供者:smtp

最佳答案

我建议不要在您的包中包含邮件 jar 。更好的方法是在 osgi 运行时中简单地安装 mail.jar。

你必须确保你有两件事来完成这项工作:

  1. 确保在您自己的包的 list 中导入所需的包。通常只需使用默认的 maven bundle 插件就可以做到这一点,但你应该检查生成的 list
  2. 将 mail.jar 部署到您的 OSGi 运行时中。如果您使用的是 apache karaf,那么只需执行以下操作: mvn install -s mvn:javax.mail/mail/1.4.4 如果没有,那么下面的 jar 应该有帮助。它包含用于 OSGi 部署的正确 list 文件 http://search.maven.org/#artifactdetails|javax.mail|mail|1.4.4|jar

关于java - Maven - 在 jar 中包含引用的库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14214459/

相关文章:

java list 类路径与-classpath

java - 在java中,向具有特定模式的字符串添加掩码的正则表达式是什么

java - 是否可以从部署在 JBoss 容器中的所有 .war 文件中读取属性文件

java - 导出使用无限 JCE 策略(加密)的 Java 程序

java - 包 com.sun.xml.internal.bind.v2.model.annotation 不存在

java - 如何从 src 文件夹调用测试类并使用 maven 构建

java - Maven 构建后缺少类文件

java - 无法使用附加库/jar 文件、javac 类路径进行编译

Java Double获取点/逗号后的所有数字

java - 使用Guice : No implementation bounded