Я использую VSCode
для проекта Java, и мне кажется, что если нет файла .classpath
, VSCode
не найдет правильный путь зависимостей и выдаст ошибки.Поэтому я использовал gradle eclipse
для его генерации.
Основной .classpath
файл, сгенерированный gradle eclipse
, показан следующим образом:
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" output="bin/main" path="src/main/resources">
<attributes>
<attribute name="gradle_scope" value="main"/>
<attribute name="gradle_used_by_scope" value="main,test"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="bin/test" path="src/test/java">
<attributes>
<attribute name="gradle_scope" value="test"/>
<attribute name="gradle_used_by_scope" value="test"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="bin/test" path="src/test/resources">
<attributes>
<attribute name="gradle_scope" value="test"/>
<attribute name="gradle_used_by_scope" value="test"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8/"/>
</classpath>
После добавления некоторых зависимостей в build.gradle язапустите gradle build
и gradle eclipse
, файл .classpath
будет восстановлен со всеми добавленными мною зависимостями, но они отображаются следующим образом:
<classpathentry kind="lib" path="C:/Users/user/.gradle/caches/modules-2/files-2.1/org.apache.hadoop/hadoop-client/3.2.0/64e71497e5cb87e3cae9063d9899bc102c540384/hadoop-client-3.2.0.jar" sourcepath="C:/Users/xiaohu10/.gradle/caches/modules-2/files-2.1/org.apache.hadoop/hadoop-client/3.2.0/948488c756ae3707ce143f98e930f678e434291c/hadoop-client-3.2.0-sources.jar">
...
Мы можем заметить, что gradle использует абсолютный путьвсе зависимости с жестким кодом, что приводит к очень большому файлу .classpath
.
Я хочу сделать то же самое, что и запись JRE, используя контейнер <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8/"/>
.
Может ли gradle определитьclasspath container
который содержит все зависимости из кэша gradle?Так же, как buildship
делает на затмении <classpathentry kind="con" path="org.eclipse.buildship.core.gradleclasspathcontainer"/>
Спасибо ~