为什么原生 Quarkus 可执行文件不能启动我的 jax-rs 资源与 maven 多模块结构



我正在尝试开发一个具有六边形架构的夸克斯应用程序。

应用程序代码在 github 中可用。

我有 4 个模块;业务、持久性、Web 服务和应用程序打包在一个全局模块中,我将在其中生成我的 Quarkus 应用程序。

当我启动时:

mvn clean package -Pnative 

然后是我的原生图像

portfolio-app/target/portfolio-app-1.0-SNAPSHOT-runner

Quarkus无法公开我不在主模块中的PortfolioEndpoint。

我可以将我的端点放在我的投资组合应用程序中,这是有效的,但我不想破坏六边形架构。

我应该将所有 Quarkus 功能放在同一个 maven 模块中,还是可以将功能拆分为多个包?

我设法按照@gsmet的建议在我的父pom中添加jandex maven插件的问题

 <build>
    <plugins>
    <plugin>
        <groupId>org.jboss.jandex</groupId>
        <artifactId>jandex-maven-plugin</artifactId>
        <version>1.0.5</version>
        <executions>
            <execution>
                <id>make-index</id>
                <goals>
                    <goal>jandex</goal>
                </goals>
                <!-- phase is 'process-classes by default' -->
                <configuration>
                    <!-- Nothing needed here for simple cases -->
                </configuration>
            </execution>
        </executions>
    </plugin>
    </plugins>
</build>

该插件将生成一个名为jandex.idx的文件,其中包含对目标/类文件夹中包含的所有.class文件的引用。

└── target
├── classes
│   ├── META-INF
│   │   └── jandex.idx <==== here
│   └── org
│       └── acme
│           └── quarkus
│               └── portfolio
│                   └── persistence
│                       └── repository
│                           ├── SqlRepositoryAdapter.class
│                           └── SqlRepositoryProvider.class

最新更新