[英]"Unresolved dependency" / "import cannot be resolved" in VS Code Java language support when working with Artifactory dependecies
我們有一堆私有的 Java 依賴發布到 Artifactory。 我們正在使用 Gradle 來構建我們的項目。
問題是 VSCode Language Support for Java 無法識別build.gradle
或我們的 Java 源代碼中的依賴項/導入。
注意:下面的所有片段都是從源代碼/VS Code 消息中完全復制粘貼的,除了公司域被替換為 mycompany.com 並且 Artifactory 憑據被編輯。
我在 Java 源代碼中看到的錯誤是:
The import com.mycompany.observability cannot be resolved
MycompanyLogger 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
關於調試這個的下一步應該是什么的任何想法?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.