mfussenegger / nvim-jdtls

Extensions for the built-in LSP support in Neovim for eclipse.jdt.ls
GNU General Public License v3.0
1.05k stars 61 forks source link

nvim-jdtls cannot resolve org.junit.* #439

Closed GersiD closed 1 year ago

GersiD commented 1 year ago

LSP client configuration

return {
  java = {
    project = {
      referencedLibraries = {
        "C:/Users/gersi/scoop/apps/gradle/current/lib/*.jar",
        "C:/Users/gersi/scoop/apps/gradle/current/lib/plugins/*.jar",
      },
    },
  },
  cmd = {
    "java", -- or '/path/to/java17_or_newer/bin/java'
    -- depends on if `java` is in your $PATH env variable and if it points to the right version.

    "-Declipse.application=org.eclipse.jdt.ls.core.id1",
    "-Dosgi.bundles.defaultStartLevel=4",
    "-Declipse.product=org.eclipse.jdt.ls.core.product",
    "-Dlog.protocol=true",
    "-Dlog.level=ALL",
    "-Xms1g",
    "--add-modules=ALL-SYSTEM",
    "--add-opens",
    "java.base/java.util=ALL-UNNAMED",
    "--add-opens",
    "java.base/java.lang=ALL-UNNAMED",
    "-javaagent:" .. "C:\\Users\\gersi\\AppData\\Local\\nvim-data\\mason\\packages\\jdtls\\lombok.jar",

    -- πŸ’€
    "-jar",
    "C:\\Users\\gersi\\AppData\\Local\\nvim-data\\mason\\packages\\jdtls\\plugins\\org.eclipse.equinox.launcher_1.6.400.v20210924-0641.jar",
    -- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                       ^^^^^^^^^^^^^^
    -- Must point to the                                                     Change this to
    -- eclipse.jdt.ls installation                                           the actual version

    -- πŸ’€
    "-configuration",
    "C:\\Users\\gersi\\AppData\\Local\\nvim-data\\mason\\packages\\jdtls\\config_win",
    -- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^        ^^^^^^
    -- Must point to the                      Change to one of `linux`, `win` or `mac`
    -- eclipse.jdt.ls installation            Depending on your system.

    -- πŸ’€
    -- See `data directory configuration` section in the README
    "-data",
    "C:\\Users\\gersi\\.cache\\jdtls\\workspace",
  },
  root_dir = vim.fs.dirname(
    vim.fs.find(
      { ".gradlew", ".gitignore", "mvnw", "build.grade.kts" },
      { upward = true, path = vim.fs.dirname(vim.api.nvim_buf_get_name(0)) }
    )[1]
  ) .. "\\",
}

Eclipse.jdt.ls version

1.20.0

Steps to Reproduce

In a project using

------------------------------------------------------------
Gradle 7.5.1
------------------------------------------------------------

Build time:   2022-08-05 21:17:56 UTC
Revision:     d1daa0cbf1a0103000b71484e1dbfe096e095918

Kotlin:       1.6.21
Groovy:       3.0.10
Ant:          Apache Ant(TM) version 1.10.11 compiled on July 10 2021
JVM:          17.0.6 (Eclipse Adoptium 17.0.6+10)
OS:           Windows 11 10.0 amd64

This project has a build.gradle.kts script which specifies its dependencies.

repositories {
  mavenCentral()
}

plugins {
  java
  // test-logger plugin displays test results in the terminal, and is not strictly necessary.
  id("com.adarshr.test-logger") version "3.1.0"
}

java {
  toolchain {
    languageVersion.set(JavaLanguageVersion.of(17))
  }
}

testlogger {
  showStandardStreams = true
}

dependencies {
  implementation("org.apache.commons:commons-lang3:3.12.0")
  testImplementation("org.junit.jupiter:junit-jupiter:5.8.2")
  testImplementation(files("libs/CSGrader.jar"))
  testImplementation("io.github.java-diff-utils:java-diff-utils:4.12")
}

tasks.getByName<Test>("test") {
  useJUnitPlatform()
}

sourceSets {
  main {
    java {
      setSrcDirs(listOf("src/main"))
    }
  }
  test {
    java {
      setSrcDirs(listOf("src/test"))
    }
  }
}

Open a java file in the src/test directory and import anything from org.junit.jupiter. The import will not be reckognized.

Expected Result

I expect jdtls to find org.junit.jupiter because I have set the following keys in the jdtls setup.

  java = {
    project = {
      referencedLibraries = {
        "C:/Users/gersi/scoop/apps/gradle/current/lib/*.jar",
        "C:/Users/gersi/scoop/apps/gradle/current/lib/plugins/*.jar",
      },
    },
  },

The scoop/apps/gradle/current/lib/ directory contains the jar files for junit. So java should be able to find them.

Actual Result

image image
!ENTRY org.eclipse.jdt.ls.core 1 0 2023-03-12 15:14:43.253
!MESSAGE >> codeLens/resolve

!ENTRY org.eclipse.jdt.ls.core 1 0 2023-03-12 15:14:43.257
!MESSAGE >> codeLens/resolve

!ENTRY org.eclipse.jdt.ls.core 1 0 2023-03-12 15:15:01.099
!MESSAGE >> java/buildWorkspace (full)

!ENTRY org.eclipse.jdt.ls.core 1 0 2023-03-12 15:15:01.632
!MESSAGE Reconciled 1. Took 0 ms

!ENTRY org.eclipse.jdt.ls.core 4 0 2023-03-12 15:15:01.636
!MESSAGE Error occured while building workspace. Details: 
 message: Failed to configure project 5P-HuffTree; code: 0; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree;
 message: Rubric cannot be resolved to a type; code: 16777218; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 51
 message: The method assertEquals(String, String) is undefined for the type HuffTreeTest; code: 67108964; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 58
 message: The method assertEquals(String, String) is undefined for the type HuffTreeTest; code: 67108964; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 59
 message: The method assertEquals(String, String) is undefined for the type HuffTreeTest; code: 67108964; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 60
 message: The method assertEquals(String, String) is undefined for the type HuffTreeTest; code: 67108964; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 61
 message: The method assertEquals(String, String) is undefined for the type HuffTreeTest; code: 67108964; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 62
 message: Test cannot be resolved to a type; code: 16777218; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 65
 message: Rubric cannot be resolved to a type; code: 16777218; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 65
 message: The method assertEquals(String, String) is undefined for the type HuffTreeTest; code: 67108964; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 72
 message: The method assertEquals(String, String) is undefined for the type HuffTreeTest; code: 67108964; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 73
 message: The method assertEquals(String, String) is undefined for the type HuffTreeTest; code: 67108964; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 74
 message: Test cannot be resolved to a type; code: 16777218; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 77
 message: Rubric cannot be resolved to a type; code: 16777218; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 77
 message: The method assertEquals(String, String) is undefined for the type HuffTreeTest; code: 67108964; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 84
 message: The method assertEquals(String, String) is undefined for the type HuffTreeTest; code: 67108964; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 85
 message: The method assertEquals(String, String) is undefined for the type HuffTreeTest; code: 67108964; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 86
 message: The method assertEquals(String, String) is undefined for the type HuffTreeTest; code: 67108964; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 87
 message: The method assertEquals(String, String) is undefined for the type HuffTreeTest; code: 67108964; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 88
 message: The method assertEquals(String, String) is undefined for the type HuffTreeTest; code: 67108964; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 89
 message: The method assertEquals(String, String) is undefined for the type HuffTreeTest; code: 67108964; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 90
 message: The method assertEquals(String, String) is undefined for the type HuffTreeTest; code: 67108964; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 91
 message: Test cannot be resolved to a type; code: 16777218; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 94
 message: Rubric cannot be resolved to a type; code: 16777218; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 94
 message: The method assertEquals(String, String) is undefined for the type HuffTreeTest; code: 67108964; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 101
 message: The method assertEquals(String, String) is undefined for the type HuffTreeTest; code: 67108964; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 102
 message: The method assertEquals(String, String) is undefined for the type HuffTreeTest; code: 67108964; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 103
 message: Test cannot be resolved to a type; code: 16777218; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 106
 message: Rubric cannot be resolved to a type; code: 16777218; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 106
 message: The method assertEquals(String, String) is undefined for the type HuffTreeTest; code: 67108964; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 113
 message: The method assertEquals(String, String) is undefined for the type HuffTreeTest; code: 67108964; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 114
 message: The method assertEquals(String, String) is undefined for the type HuffTreeTest; code: 67108964; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 115
 message: The method assertEquals(String, String) is undefined for the type HuffTreeTest; code: 67108964; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 116
 message: The method assertEquals(String, String) is undefined for the type HuffTreeTest; code: 67108964; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 117
 message: The method assertEquals(String, String) is undefined for the type HuffTreeTest; code: 67108964; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 118
 message: The method assertEquals(String, String) is undefined for the type HuffTreeTest; code: 67108964; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 119
 message: The method assertEquals(String, String) is undefined for the type HuffTreeTest; code: 67108964; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 120
 message: Test cannot be resolved to a type; code: 16777218; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 123
 message: Rubric cannot be resolved to a type; code: 16777218; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 123
 message: The method assertEquals(String, String) is undefined for the type HuffTreeTest; code: 67108964; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 130
 message: The method assertEquals(String, String) is undefined for the type HuffTreeTest; code: 67108964; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 131
 message: The method assertEquals(String, String) is undefined for the type HuffTreeTest; code: 67108964; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 132
 message: The method assertEquals(String, String) is undefined for the type HuffTreeTest; code: 67108964; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 133
 message: The method assertEquals(String, String) is undefined for the type HuffTreeTest; code: 67108964; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 134
 message: Test cannot be resolved to a type; code: 16777218; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 137
 message: Rubric cannot be resolved to a type; code: 16777218; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 137
 message: The method assertEquals(int, int) is undefined for the type HuffTreeTest; code: 67108964; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 141
 message: The method assertEquals(int, int) is undefined for the type HuffTreeTest; code: 67108964; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 142
 message: The method assertTrue(boolean) is undefined for the type HuffTreeTest; code: 67108964; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 143
 message: Test cannot be resolved to a type; code: 16777218; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 147
 message: Rubric cannot be resolved to a type; code: 16777218; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 147
 message: The method assertEquals(int, int) is undefined for the type HuffTreeTest; code: 67108964; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 151
 message: The method assertEquals(int, int) is undefined for the type HuffTreeTest; code: 67108964; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 152
 message: The method assertTrue(boolean) is undefined for the type HuffTreeTest; code: 67108964; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 153
 message: Test cannot be resolved to a type; code: 16777218; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 157
 message: Rubric cannot be resolved to a type; code: 16777218; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 157
 message: The method assertEquals(int, int) is undefined for the type HuffTreeTest; code: 67108964; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 162
 message: The method assertEquals(int, int) is undefined for the type HuffTreeTest; code: 67108964; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 163
 message: The method assertTrue(boolean) is undefined for the type HuffTreeTest; code: 67108964; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 164
 message: The import org.junit cannot be resolved; code: 268435846; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 1
 message: The import org.junit cannot be resolved; code: 268435846; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 2
 message: The import org.junit cannot be resolved; code: 268435846; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 10
 message: The import edu cannot be resolved; code: 268435846; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 12
 message: The import edu cannot be resolved; code: 268435846; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 13
 message: ExtendWith cannot be resolved to a type; code: 16777218; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 15
 message: Grader cannot be resolved to a type; code: 16777218; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 15
 message: Test cannot be resolved to a type; code: 16777218; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 17
 message: Rubric cannot be resolved to a type; code: 16777218; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 17
 message: The method assertEquals(String, String) is undefined for the type HuffTreeTest; code: 67108964; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 24
 message: Test cannot be resolved to a type; code: 16777218; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 27
 message: Rubric cannot be resolved to a type; code: 16777218; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 27
 message: The method assertEquals(String, String) is undefined for the type HuffTreeTest; code: 67108964; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 34
 message: Test cannot be resolved to a type; code: 16777218; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 37
 message: Rubric cannot be resolved to a type; code: 16777218; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 37
 message: The method assertEquals(String, String) is undefined for the type HuffTreeTest; code: 67108964; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 45
 message: The method assertEquals(String, String) is undefined for the type HuffTreeTest; code: 67108964; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 46
 message: The method assertEquals(String, String) is undefined for the type HuffTreeTest; code: 67108964; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 47
 message: The method assertEquals(String, String) is undefined for the type HuffTreeTest; code: 67108964; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 48
 message: Test cannot be resolved to a type; code: 16777218; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/HuffTreeTest.java; line: 51
 message: Test cannot be resolved to a type; code: 16777218; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/TestHuff1.java; line: 6
 message: The import org.junit cannot be resolved; code: 268435846; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/TestHuff1.java; line: 1
 message: The import org.junit cannot be resolved; code: 268435846; resource: C:/Users/gersi/Desktop/grad_school/TA/515/cs515-java/assignments/5P-HuffTree/src/test/TestHuff1.java; line: 2

!ENTRY org.eclipse.jdt.ls.core 1 0 2023-03-12 15:15:02.827
!MESSAGE begin problem for /TestHuff1.java

!ENTRY org.eclipse.jdt.ls.core 1 0 2023-03-12 15:15:02.829
!MESSAGE 3 problems reported for /TestHuff1.java

!ENTRY org.eclipse.jdt.ls.core 1 0 2023-03-12 15:15:02.830
!MESSAGE Validated 1. Took 65 ms

!ENTRY org.eclipse.jdt.ls.core 1 0 2023-03-12 15:15:02.847
!MESSAGE >> document/documentSymbol

!ENTRY org.eclipse.jdt.ls.core 1 0 2023-03-12 15:15:08.148
!MESSAGE >> document/codeLens

!ENTRY org.eclipse.jdt.ls.core 1 0 2023-03-12 15:15:08.328
!MESSAGE >> codeLens/resolve

!ENTRY org.eclipse.jdt.ls.core 1 0 2023-03-12 15:15:08.330
!MESSAGE >> codeLens/resolve

!ENTRY org.eclipse.jdt.ls.core 1 0 2023-03-12 15:15:12.340
!MESSAGE >> document/codeLens

!ENTRY org.eclipse.jdt.ls.core 1 0 2023-03-12 15:15:12.358
!MESSAGE >> codeLens/resolve

!ENTRY org.eclipse.jdt.ls.core 1 0 2023-03-12 15:15:12.360
!MESSAGE >> codeLens/resolve

!ENTRY org.eclipse.jdt.ls.core 1 0 2023-03-12 15:15:12.694
!MESSAGE >> document/documentHighlight

!ENTRY org.eclipse.jdt.ls.core 1 0 2023-03-12 15:15:23.725
!MESSAGE >> document/codeLens

!ENTRY org.eclipse.jdt.ls.core 1 0 2023-03-12 15:15:23.789
!MESSAGE >> codeLens/resolve

!ENTRY org.eclipse.jdt.ls.core 1 0 2023-03-12 15:15:23.790
!MESSAGE >> codeLens/resolve

!ENTRY org.eclipse.jdt.ls.core 1 0 2023-03-12 15:15:26.296
!MESSAGE >> document/codeLens

!ENTRY org.eclipse.jdt.ls.core 1 0 2023-03-12 15:15:26.360
!MESSAGE >> codeLens/resolve

!ENTRY org.eclipse.jdt.ls.core 1 0 2023-03-12 15:15:26.362
!MESSAGE >> codeLens/resolve

!ENTRY org.eclipse.jdt.ls.core 1 0 2023-03-12 15:15:28.261
!MESSAGE >> document/codeLens

!ENTRY org.eclipse.jdt.ls.core 1 0 2023-03-12 15:15:28.325
!MESSAGE >> codeLens/resolve

!ENTRY org.eclipse.jdt.ls.core 1 0 2023-03-12 15:15:28.329
!MESSAGE >> codeLens/resolve

!ENTRY org.eclipse.jdt.ls.core 1 0 2023-03-12 15:15:28.693
!MESSAGE >> document/documentHighlight

!ENTRY org.eclipse.jdt.ls.core 1 0 2023-03-12 15:15:33.785
!MESSAGE >> document/documentHighlight

!ENTRY org.eclipse.jdt.ls.core 1 0 2023-03-12 15:15:37.848
!MESSAGE >> document/codeLens
GersiD commented 1 year ago

Please note I have tried the following variations for the settings sub table.

settings = {
    java = {
      project = {
        referencedLibraries = {
          "C:/Users/gersi/scoop/apps/gradle/current/lib/*.jar",
          "C:/Users/gersi/scoop/apps/gradle/current/lib/plugins/*.jar",
        },
      },
    },
  },
    java = {
      project = {
        referencedLibraries = {
          "C:/Users/gersi/scoop/apps/gradle/current/lib/*.jar",
          "C:/Users/gersi/scoop/apps/gradle/current/lib/plugins/*.jar",
        },
      },
    },
      project = {
        referencedLibraries = {
          "C:/Users/gersi/scoop/apps/gradle/current/lib/*.jar",
          "C:/Users/gersi/scoop/apps/gradle/current/lib/plugins/*.jar",
        },
      },

I am a complete amateur when it comes to investigating the inner workings on LSP plugins so please give guidelines on how to provide even more information. I am sure this should be an easy fix for someone who knows what's going on. Thank you for creating nvim-jdtls! I really enjoy the plugin otheriwse :)

mfussenegger commented 1 year ago

You could try removing the referencedLibraries configuration. Given that your gradle build file contains org.junit.jupiter as dependency it should pick it up.

E.g. a minimal build.gradle that works for me would look like this:

plugins {
    id 'application'
}

repositories {
    mavenCentral()
}

dependencies {
    testImplementation 'org.junit.jupiter:junit-jupiter:5.8.2'
}

application {
    mainClass = 'jdtlsdemo.App'
}

tasks.named('test') {
    useJUnitPlatform()
}
GersiD commented 1 year ago

Hi @mfussenegger Thank you for the response!

So I have moved my config from windows to linux (ubuntu 22.04.2) and the issue persists with a new issue. Now jdtls does not recognize the files in the src/main folder as project files.

image

The old issue persists, even when removing the referencedLibraries key in the jdtls setup.

image

Does anything come to mind? The root directory is correct, but I am not sure if jdtls is finding my build.gradle.kts script. How can I verify that this is not the issue. Thank you for developing this plugin!

image

Java version = openjdk version "17.0.6" 2023-01-17 Gradle version = 7.2

GersiD commented 1 year ago

Turns out I'm an idiot and I overcomplicated my setup

Instead of doing the whole cmd = "java" ........ just use cmd = "jdtls". Now it all works no issues whatsoever!

Thanks!

cccccmake commented 1 year ago

Hmmm I just overcomplicated the configuration as well... So what are the complicate cmd for?