繁体   English   中英

使用 Gradle 添加库以构建路径

[英]Add library to build path with Gradle

我已通过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>
...

.classpath 刷新后 Gradle:

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM