首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VS代码Java语言支持中的“未解决依赖项”/“导入无法解决”

VS代码Java语言支持中的“未解决依赖项”/“导入无法解决”
EN

Stack Overflow用户
提问于 2020-11-01 16:26:27
回答 1查看 3.4K关注 0票数 4

我们有一堆私有Java依赖项发布到Artifactory中。我们正在使用Gradle来构建我们的项目。

问题是,VSCode语言对Java的支持不承认build.gradle或我们的Java源代码中的依赖/导入。

注意:下面的所有代码片段都是从源代码/ VS代码消息中复制粘贴的,除了被mycompany.com替换的公司域和编辑的Artifactory凭据之外。

我在Java源代码中看到的错误是:

代码语言:javascript
复制
The import com.mycompany.observability cannot be resolved
代码语言:javascript
复制
MycompanyLogger cannot be resolved

下面是带有错误的Java文件:

代码语言:javascript
复制
package com.mycompany.sample;

import com.mycompany.observability.logging.MycompanyLogger;

public class SampleApplication {

  public static void main(String[] args) {
    MycompanyLogger.setServiceName("SERVICE_NAME");
  }
}

build.gradle中的错误

代码语言:javascript
复制
Unresolved dependency: com.mycompany:core-observability-spring:0.0.37

下面是build.gradle文件:

代码语言:javascript
复制
plugins {
    id 'io.spring.dependency-management' version '1.0.9.RELEASE'
    id 'org.springframework.boot' version '2.3.4.RELEASE'
    id 'java-library'
    id 'application'
    id 'checkstyle'
    id 'pmd'
    id 'jacoco'
    id 'com.jfrog.artifactory' version "4.17.2"
    id "org.sonarqube" version "3.0"
}

group = 'com.mycompany'
version = '0.0.1-SNAPSHOT'

java {
    sourceCompatibility = JavaVersion.VERSION_11
    targetCompatibility = JavaVersion.VERSION_11
}

repositories {
    mavenLocal()
    mavenCentral()
}

jar.archiveBaseName = "sample-service"
mainClassName = 'com.mycompany.sample.SampleApplication'

apply plugin: 'com.jfrog.artifactory'
apply plugin: "java"

artifactory {
    contextUrl = "https://artifactory.mycompany.com/artifactory/"
    resolve {
        repository {
            repoKey = 'gradle-release'
            username = project.findProperty('artifactory_user')
            password = project.findProperty('artifactory_key')
            maven = true
        }
    }
}

dependencies {
    implementation('org.springframework.boot:spring-boot-starter-web')
    implementation('org.springframework.boot:spring-boot-starter-aop')
    implementation('org.codehaus.janino:commons-compiler:3.1.0') // Conditional expressions in logback
    implementation('org.codehaus.janino:janino:3.1.0') // Conditional expressions in logback
    implementation("ch.qos.logback:logback-classic:1.2.3")
    implementation('net.logstash.logback:logstash-logback-encoder:6.3')
    implementation('com.datadoghq:dd-java-agent:0.51.0')

    implementation('com.mycompany:core-observability-spring:0.0.37')
}

checkstyle {
    toolVersion "8.29"
    configFile = file("${rootDir}/config/checkstyle/google_checks.xml")
}

jar {
    enabled = true
}

pmd {
    ignoreFailures = false
    ruleSetFiles = files("config/pmd/mycompany_custom_ruleset.xml")
    ruleSets = []
    sourceSets = []
}

下面是我的~/.gradle/目录中的相关文件:

代码语言:javascript
复制
➜  .gradle cat gradle.properties
artifactory_user=<redacted>
artifactory_key=<redacted>
代码语言:javascript
复制
➜  .gradle cat init.gradle.kts  
settingsEvaluated {
    pluginManagement {
        val artifactory_user: String? by settings
        val artifactory_password: String? by settings
        val artifactory_key: String? by settings

        repositories {
            maven(url = "https://artifactory.mycompany.com/artifactory/gradle-release") {
                credentials {
                    username = artifactory_user
                    password = artifactory_password ?: artifactory_key
                }
            }
            gradlePluginPortal()
        }
    }
}

最后,下面是这个项目的.vscode配置文件:

代码语言:javascript
复制
➜  .vscode git:(vscode-settings) cat settings.json 
{
    "[java]": {
        "editor.formatOnSave": false,
    },
    "editor.formatOnSave": true,
    "files.insertFinalNewline": true,
    "files.trimFinalNewlines": true,
    "files.trimTrailingWhitespace": true,
    "terminal.integrated.scrollback": 10000,
    "java.configuration.updateBuildConfiguration": "automatic",
    "java.import.gradle.enabled": true,
    "java.import.gradle.wrapper.enabled": true,
    "java.import.maven.enabled": false,
}
代码语言:javascript
复制
➜  .vscode git:(vscode-settings) cat extensions.json 
{
    "recommendations": [
        "gabrielbb.vscode-lombok",
        "pivotal.vscode-spring-boot",
        "richardwillis.vscode-gradle-extension-pack",
        "vscjava.vscode-java-pack"
    ]
}

使用./gradlew build编译应用程序时,一切都很好。

代码语言:javascript
复制
➜  sample-service git:(master) ✗ ./gradlew build

BUILD SUCCESSFUL in 5s
11 actionable tasks: 8 executed, 3 up-to-date

有什么想法应该是我的下一步调试吗?

EN

回答 1

Stack Overflow用户

发布于 2022-01-03 11:24:28

我也有过同样的问题,帮助我的是

Java: Clean Java Language Server Workspace,来自Command Palette

似乎坚持旧版本。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64634154

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档