Grails 2中具有相同包名称的不同依赖项

huangapple go评论95阅读模式
英文:

grails 2 different dependencies with same package names

问题

一些来自不同库的依赖项具有相同的包名称 javax.mail。并且它们内部的所有类都具有不同版本但相同的类名。

我希望能够在运行时选择要加载的类。更具体地说,我有一个用于电子邮件的 MimeMessage 类,但目前程序选择旧版本而不是新版本,因此这个字段 protected InternetHeaders headers; 没有正确填充,电子邮件和主题的字符集没有添加,因此我无法发送包含 HTML 正文的邮件。
jar 文件名称:

  1. javax.mail-1.6.2.jar
  2. geronimo-javamail_1.4_spec-1.2.jar
  3. javax.mail-1.5.1.jar
  4. javax.mail-api-1.5.1.jar

它们都包含 javax.mail.internet.MimeMessage

英文:

Some dependencies from various libraries have same package name javax.mail. And all the classes inside them are equal with different versions.

I want to be able to choose which class to load at runtime. To be more specific, I have MimeMessage class for email and right now the program is choosing the old version rather than the newer version so this field protected InternetHeaders headers; is not correctly filled and the charset for email and subject is not added so I am unable to send mail with html body.
jar file names :

  1. javax.mail-1.6.2.jar
  2. geronimo-javamail_1.4_spec-1.2.jar
  3. javax.mail-1.5.1.jar
  4. javax.mail-api-1.5.1.jar

all of them have javax.mail.internet.MimeMessage

答案1

得分: 1

你可以尝试以下操作:

  • 排除冲突的依赖项
  1. dependencies {
  2. compile('org.example:conflict-library:1.0') {
  3. excludes 'geronimo-javamail_1.4_spec'
  4. }
  5. }
  • 使用依赖管理
  1. dependencyManagement {
  2. imports {
  3. mavenBom 'org.example:bom:1.0'
  4. }
  5. dependencies {
  6. dependency 'javax.mail:mail:1.6.2'
  7. }
  8. }

强制所有依赖于 javax.mail:mail 的依赖项使用版本 1.6.2

PS:在修改后记得清理和重新构建你的项目。

英文:

You may wanna try to

  • Exclude the conflicting dependency
  1. dependencies {
  2. compile('org.example:conflict-library:1.0') {
  3. excludes 'geronimo-javamail_1.4_spec'
  4. }
  5. }
  • Use dependency management
  1. dependencyManagement {
  2. imports {
  3. mavenBom 'org.example:bom:1.0'
  4. }
  5. dependencies {
  6. dependency 'javax.mail:mail:1.6.2'
  7. }
  8. }

forcing all dependencies on javax.mail:mail to use version 1.6.2

PS: remember to clean and rebuild your project after modifying

huangapple
  • 本文由 发表于 2023年6月11日 21:04:36
  • 转载请务必保留本文链接:https://go.coder-hub.com/76450595.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定