amazon-web-services - 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 在这个项目中无法识别它?我也可以在 ubuntu 终端中成功运行项目gradle bootRun
。只是intellij无法识别。它还能够识别 spring、postgres、lombok 和 spock 依赖项。
Cannot resolve symbol 'com.myproject.top.secret.TopSecretService'.
当单击 build for gradle 时,我不断收到此错误。
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 是环境变量,用于存储您的密码/会话。
您还可以使用 gradle.properties 来检索值,只需确保替换System.env.CODEARTIFACT_AUTH_TOKEN
为
project.findProperty.CODEARTIFACT_AUTH_TOKEN
其中 CODEARTIFACT_AUTH_TOKEN 将密码/令牌存储在您的 gradle 属性中。
推荐阅读
- flutter - 高级 PDF 查看器:断言失败:第 4263 行 pos 14:'owner!._debugCurrentBuildTarget == this':不正确
- matlab - 在 Matlab 中拟合自定义方程
- google-chrome - 让 Chrome 在 iframe 中读取跨域 cookie
- android - 如何将 $document.data 详细信息转换为有用的格式,以便我可以在列表视图中使用它
- cron - 从智能合约安排通话功能
- sql - 具有父子关系的递归查询
- kubernetes - Pod如何反映K8S Job的应用退出代码
- java - Maven 项目中的 JUnit 5 测试在 IntelliJ 中工作,但不能在命令行中工作
- r - ggplot2中的多个样条线 - 想要手动控制颜色
- javascript - 来自 FastAPI 的 400(错误请求)