我们有一堆私有Java依赖项发布到Artifactory中。我们正在使用Gradle来构建我们的项目。
问题是,VSCode语言对Java的支持不承认build.gradle或我们的Java源代码中的依赖/导入。
注意:下面的所有代码片段都是从源代码/ VS代码消息中复制粘贴的,除了被mycompany.com替换的公司域和编辑的Artifactory凭据之外。
我在Java源代码中看到的错误是:
The import com.mycompany.observability cannot be resolvedMycompanyLogger cannot be resolved下面是带有错误的Java文件:
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中的错误
Unresolved dependency: com.mycompany:core-observability-spring:0.0.37下面是build.gradle文件:
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/目录中的相关文件:
➜ .gradle cat gradle.properties
artifactory_user=<redacted>
artifactory_key=<redacted>➜ .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配置文件:
➜ .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,
}➜ .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编译应用程序时,一切都很好。
➜ sample-service git:(master) ✗ ./gradlew build
BUILD SUCCESSFUL in 5s
11 actionable tasks: 8 executed, 3 up-to-date有什么想法应该是我的下一步调试吗?
发布于 2022-01-03 11:24:28
我也有过同样的问题,帮助我的是
Java: Clean Java Language Server Workspace,来自Command Palette。

似乎坚持旧版本。
https://stackoverflow.com/questions/64634154
复制相似问题