Я создал проект Gradle. Это build-gradle
:
plugins {
id 'java'
}
repositories {
jcenter()
}
dependencies {
implementation 'com.amazonaws:aws-lambda-java-core:1.2.0'
implementation 'com.amazonaws:aws-lambda-java-events:2.2.7'
implementation 'com.amazonaws:aws-java-sdk-s3:1.11.754'
implementation 'com.amazonaws:aws-java-sdk-dynamodb:1.11.754'
implementation 'org.apache.logging.log4j:log4j-api:2.13.0'
implementation 'org.apache.logging.log4j:log4j-core:2.13.0'
runtimeOnly 'org.apache.logging.log4j:log4j-slf4j18-impl:2.13.0'
runtimeOnly 'com.amazonaws:aws-lambda-java-log4j2:1.1.0'
implementation 'com.opencsv:opencsv:5.1'
implementation 'com.google.dagger:dagger:2.27'
annotationProcessor 'com.google.dagger:dagger-compiler:2.27'
testImplementation('org.junit.jupiter:junit-jupiter:5.6.1')
}
test {
useJUnitPlatform()
testLogging {
events "passed", "skipped", "failed"
}
}
task buildZip(type: Zip) {
from compileJava
from processResources
into('lib') {
from configurations.runtimeClasspath
}
}
build.dependsOn buildZip
Как видите, я установил зависимости кинжала:
implementation 'com.google.dagger:dagger:2.27'
annotationProcessor 'com.google.dagger:dagger-compiler:2.27'
Мой компонент:
@Component(modules = DaggerTransporterModule.class)
public interface TransporterMaker {
SOCTransporter maker();
}
После выполнив gradle build
, генерируются артефакты кинжала:
Я посмотрел на сгенерированный код:
$ tree build/classes/java/main/net/gencat/soc/lambda/config/
build/classes/java/main/net/gencat/soc/lambda/config/
├── DaggerTransporterMaker$Builder.class
├── DaggerTransporterMaker.class
├── DaggerTransporterModule.class
├── DaggerTransporterModule_ProvideContactServiceFactory.class
├── DaggerTransporterModule_ProvideCSVDaoFactory.class
├── DaggerTransporterModule_ProvideCSVDaoFactory$InstanceHolder.class
├── DaggerTransporterModule_ProvideDynamoDBDaoFactory.class
├── DaggerTransporterModule_ProvideDynamoDBDaoFactory$InstanceHolder.class
├── DaggerTransporterModule_ProvideS3DaoFactory.class
├── DaggerTransporterModule_ProvideS3DaoFactory$InstanceHolder.class
└── TransporterMaker.class
Как видите, артефакты кинжала генерируются правильно.
Тем не менее, я не могу использовать их внутри vscode:
Gradle работает нормально:
$ gradle compileJava
BUILD SUCCESSFUL in 3s
1 actionable task: 1 executed
Есть идеи?