我有用于发送邮件的 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。
你必须确保你有两件事来完成这项工作:
- 确保在您自己的包的 list 中导入所需的包。通常只需使用默认的 maven bundle 插件就可以做到这一点,但你应该检查生成的 list
- 将 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/