eclipse 使用Gradle将库添加到构建路径

mzsu5hc0  于 2023-01-25  发布在  Eclipse
关注(0)|答案(1)|浏览(208)

我已经通过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,它描述了同样的问题,但没有为我解决问题。

dy1byipe

dy1byipe1#

谢谢你的建议,我已经修改了你的代码,它似乎工作在jdk 17

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
              }
          }
       }
   }

相关问题