Я создал простое приложение Quarkus, которое взаимодействует с серверной базой данных, используя шаблон репозитория и запланированный компонент для регулярного подсчета записей в базе данных. Во время компиляции плагин quarkus-maven выдает исключение jakarta.enterprise.inject.UnsatisfiedResolutionException, сообщающее, что он не может найти репозиторий, и я не могу понять, почему. Сборка воспроизводимого примера завершается сбоем из-за следующей ошибки:
[ERROR] Failed to execute goal io.quarkus.platform:quarkus-maven-plugin:3.12.0:build (default) on project sample-monitor-service: Failed to build quarkus application: io.quarkus.builder.BuildException: Build failure: Build failed due to errors
[ERROR] [error]: Build step io.quarkus.arc.deployment.ArcProcessor#validate threw an exception: jakarta.enterprise.inject.spi.DeploymentException: jakarta.enterprise.inject.UnsatisfiedResolutionException: Unsatisfied dependency for type com.foo.db.SampleDaoRepository and qualifiers [@Default]
[ERROR] - injection target: parameter 'sampleDaoRepository' of com.foo.service.SampleManager constructor
[ERROR] - declared on CLASS bean [types=[com.foo.service.SampleManager, java.lang.Object], qualifiers=[@Default, @Any], target=com.foo.service.SampleManager]
[ERROR] at io.quarkus.arc.processor.BeanDeployment.processErrors(BeanDeployment.java:1546)
[ERROR] at io.quarkus.arc.processor.BeanDeployment.init(BeanDeployment.java:338)
[ERROR] at io.quarkus.arc.processor.BeanProcessor.initialize(BeanProcessor.java:167)
[ERROR] at io.quarkus.arc.deployment.ArcProcessor.validate(ArcProcessor.java:490)
[ERROR] at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
[ERROR] at java.base/java.lang.reflect.Method.invoke(Method.java:580)
[ERROR] at io.quarkus.deployment.ExtensionLoader$3.execute(ExtensionLoader.java:849)
[ERROR] at io.quarkus.builder.BuildContext.run(BuildContext.java:256)
[ERROR] at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18)
[ERROR] at org.jboss.threads.EnhancedQueueExecutor$Task.doRunWith(EnhancedQueueExecutor.java:2516)
[ERROR] at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2495)
[ERROR] at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1521)
[ERROR] at java.base/java.lang.Thread.run(Thread.java:1583)
[ERROR] at org.jboss.threads.JBossThread.run(JBossThread.java:483)
[ERROR] Caused by: jakarta.enterprise.inject.UnsatisfiedResolutionException: Unsatisfied dependency for type com.foo.db.SampleDaoRepository and qualifiers [@Default]
[ERROR] - injection target: parameter 'sampleDaoRepository' of com.foo.service.SampleManager constructor
[ERROR] - declared on CLASS bean [types=[com.foo.service.SampleManager, java.lang.Object], qualifiers=[@Default, @Any], target=com.foo.service.SampleManager]
[ERROR] at io.quarkus.arc.processor.Beans.resolveInjectionPoint(Beans.java:519)
[ERROR] at io.quarkus.arc.processor.BeanInfo.init(BeanInfo.java:642)
[ERROR] at io.quarkus.arc.processor.BeanDeployment.init(BeanDeployment.java:323)
[ERROR] ... 12 more
[ERROR] -> [Help 1]
Я включил минимальный воспроизводимый пример, состоящий из трех классов. Пример настроен на Java 21 и Maven.
Пример разбит на два проекта как многомодульный проект maven. Родительский проект — sample-monitor, классы dao и репозитория определены в sample-monitor/sample-monitor-db, а класс драйвера определен в sample-monitor/sample-monitor-service< /code>.
sample-monitor/pom.xml:
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" < b r / > x s i : s c h e m a L o c a t i o n = & q u o t ; h t t p : / / m a v e n . a p a c h e . o r g / P O M / 4 . 0 . 0 h t t p : / / m a v e n . a p a c h e . o r g / x s d / m a v e n - 4 . 0 . 0 . x s d & q u o t ; & g t ; < b r / > & l t ; m o d e l V e r s i o n & g t ; 4 . 0 . 0 & l t ; / m o d e l V e r s i o n & g t ; < b r / > < b r / > & l t ; g r o u p I d & g t ; c o m . f o o & l t ; / g r o u p I d & g t ; < b r / > & l t ; a r t i f a c t I d & g t ; s a m p l e - m o n i t o r & l t ; / a r t i f a c t I d>
1.0.0-SNAPSHOT
pom
1.18.32
sample-monitor-service
sample-monitor-db
io.quarkus.platform
quarkus-bom
3.12.0
pom
import
com.foo
sample-monitor-db
${project.version}
org.projectlombok
lombok
${lombok.version}
sample-monitor/sample-monitor-db/pom.xml:
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
com.foo
sample-monitor
1.0.0-SNAPSHOT
sample-monitor-db
io.quarkus
quarkus-jdbc-postgresql
io.quarkus
quarkus-hibernate-orm
io.quarkus
quarkus-hibernate-orm-panache
org.projectlombok
lombok
org.apache.maven.plugins
maven-compiler-plugin
io.quarkus
quarkus-panache-common
${quarkus.platform.version}
org.projectlombok
lombok
${lombok.version}
sample-monitor/sample-monitor-db/src/main/java/com/foo/db/SampleDao.java:
package com.foo.db;
import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import jakarta.persistence.Table;
import lombok.Data;
@Data
@Entity
@Table(name = "sample")
public class SampleDao {
@Id
private String id;
private String name;
}
sample-monitor/sample-monitor-db/src/main/java/com/foo/db/SampleDaoRepository.java:
package com.foo.db;
import io.quarkus.hibernate.orm.panache.PanacheRepository;
import jakarta.enterprise.context.ApplicationScoped;
@ApplicationScoped
public class SampleDaoRepository implements PanacheRepository {
}
sample-monitor/sample-monitor-service/pom.xml:
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
com.foo
sample-monitor
1.0.0-SNAPSHOT
sample-monitor-service
com.foo
sample-monitor-db
io.quarkus
quarkus-scheduler
org.apache.maven.plugins
maven-compiler-plugin
io.quarkus
quarkus-panache-common
${quarkus.platform.version}
org.projectlombok
lombok
${lombok.version}
io.quarkus.platform
quarkus-maven-plugin
build
generate-code
generate-code-tests
sample-monitor/sample-monitor-service/src/main/java/com/foo/service/SampleManager.java
package com.foo.service;
import com.foo.db.SampleDaoRepository;
import io.quarkus.scheduler.Scheduled;
import jakarta.inject.Singleton;
@Singleton
public class SampleManager {
private SampleDaoRepository sampleDaoRepository;
public SampleManager(SampleDaoRepository sampleDaoRepository) {
this.sampleDaoRepository = sampleDaoRepository;
}
@Scheduled(every = "2m")
public void countAll() {
System.out.println("Counted " + sampleDaoRepository.count() + " records");
}
}
Подробнее здесь: https://stackoverflow.com/questions/787 ... ven-plugin
Quarkus CDI не может найти bean-компонент ApplicationScoped во время плагина quarkus-maven-plugin ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Maven: невозможно разрешить плагин org.apache.maven.plugins:maven-site-plugin:3.12.1
Anonymous » » в форуме JAVA - 0 Ответы
- 273 Просмотры
-
Последнее сообщение Anonymous
-