【问题标题】:Add library to build path with Gradle添加库以使用 Gradle 构建路径
【发布时间】:2023-01-24 21:33:53
【问题描述】:

我已经通过 right click > Build Path > Configure Build Path > Module Dependencies 手动将 java.smartcardio 库添加到我的 Eclipse 项目中。

无论如何,在 right click > Gradle > Refresh Gradle Project 之后,库再次从构建路径中删除。

.classpath 工作时:

...
<classpathentry ...>
  <attributes>
    <attribute name="module" value="true"/>
    <attribute name="limit-modules" value="java.se,jdk.accessibility,jdk.httpserver,jdk.jartool,jdk.javadoc,jdk.jconsole,jdk.jshell,jdk.jsobject,jdk.management.jfr,jdk.naming.ldap,jdk.net,jdk.scripting.nashorn,jdk.sctp,jdk.security.auth,jdk.security.jgss,jdk.unsupported,jdk.unsupported.desktop,jdk.xml.dom,java.smartcardio"/>
  </attributes>
</classpathentry>
...

刷新 Gradle 后的 .classpath:

...
<classpathentry ...>
</classpathentry>
...

在 project.gradle 中手动设置限制模块

eclipse {
    classpath {
        file {
            whenMerged {
                def jre = entries.find { it.path.contains 'org.eclipse.jdt.launching.JRE_CONTAINER' }
                jre.entryAttributes['module'] = 'true'
                jre.entryAttributes['limit-modules'] = 'java.se,java.smartcardio'           
            }
        }
    }
}

没有用,因为奇怪的是每个开发人员在手动添加库时都有不同的限制模块填充。

任何提示如何永久解决这个问题?

编辑:我发现这个线程https://github.com/eclipse/buildship/issues/760,它描述了同样的问题,但没有为我解决问题。

【问题讨论】:

    标签: java eclipse gradle


    【解决方案1】:

    谢谢你的建议, 我已经修改了你的代码,它似乎可以工作

    eclipse {
        classpath {
            file {
                whenMerged {
                    def jre = entries.find { it.path.contains 'org.eclipse.jdt.launching.JRE_CONTAINER' }
                    jre.entryAttributes['module'] = 'true'
                    jre.entryAttributes['limit-modules'] = 'java.se,jdk.accessibility,jdk.dynalink,jdk.httpserver,jdk.jartool,jdk.javadoc,jdk.jconsole,jdk.jshell,jdk.jsobject,jdk.management.jfr,jdk.net,jdk.nio.mapmode,jdk.sctp,jdk.security.auth,jdk.security.jgss,jdk.unsupported,jdk.unsupported.desktop,jdk.xml.dom,java.smartcardio'
                    jre.entryAttributes['add-modules'] = 'java.smartcardio'           //--limit-modules java.se --add-modules java.smartcardio
                  }
              }
           }
       }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-29
      • 1970-01-01
      • 2013-06-02
      • 1970-01-01
      • 2020-03-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多