Intellij 2021 如果符号来自自定义 maven 存储库,则无法解析符号?



我在一个项目中使用了来自自定义存储库的依赖项。这就是我的build.gradle的样子(为了隐私,我模糊了一些依赖项(:

plugins {
id 'org.springframework.boot' version '2.5.6'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'groovy'
}
group = 'com.myproject.projectx.sms'
sourceCompatibility = '11'
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
maven {
url "s3://myproject-maven-repo"
authentication {
awsIm(AwsImAuthentication)
}
}
}
dependencies {
implementation 'org.postgresql:postgresql'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-validation'
implementation 'org.springframework.boot:spring-boot-starter-actuator'
implementation 'org.springframework.security:spring-security-core'
implementation 'com.myproject.top:secret-project:1.2' <------------ Gradle won't download this. why?
testImplementation 'org.spockframework:spock-spring:2.0-groovy-3.0'
testImplementation('org.springframework.boot:spring-boot-starter-test') {
exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
exclude group: 'org.junit', module: 'junit'
}
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
}
test {
useJUnitPlatform()
}

当我将鼠标悬停在使用top:secret-project依赖项的代码上时,会出现红色的波浪形下划线。这曾经在旧项目中有效,但为什么intellij在这个项目中不能识别它?此外,我还可以用gradle bootRun在ubuntu终端上成功运行该项目。它只是intellij不能识别它。它还能识别spring、postgres、lombok&spock依赖关系。

Cannot resolve symbol 'com.myproject.top.secret.TopSecretService'.

当点击buildforgradle时,我一直收到这个错误。

Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied;)

我已经在.bashrc文件中导出了正确的机密和密钥。我也已经配置了~/.aws/credentials。但我还是犯了上面的错误。

我对AwsImAuthentication和s3://都不太熟悉,但正如官方文档中提到的,您需要添加user/pass或user/token,如下所示

maven {
url 'https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/maven/my_repo/'
credentials {
username "aws"
password System.env.CODEARTIFACT_AUTH_TOKEN
}
}

其中CODEARTIFACT_AUTH_TOKEN是用于存储密码/会话的环境变量。

您也可以使用grade.properties来检索值,只需确保将System.env.CODEARTIFACT_AUTH_TOKEN替换为

其中CODEARTIFACT_AUTH_TOKEN为project.findProperty.CODEARTIFACT_AUTH_TOKEN,将密码/令牌存储在渐变属性中。

最新更新