0

我正在尝试开发具有六边形架构的 quarkus 应用程序。

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

我有 4 个模块;Business、Persistence、Webservice 和应用程序打包在一个全局模块中,我将在其中生成我的 Quarkus 应用程序。

当我启动时:

mvn clean package -Pnative 

然后是我的原生图像

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

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

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

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

4

1 回答 1

0

根据@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 的文件,其中包含对 target/classes 文件夹中包含的所有 .class 文件的引用。

└── target
├── classes
│   ├── META-INF
│   │   └── jandex.idx <==== here
│   └── org
│       └── acme
│           └── quarkus
│               └── portfolio
│                   └── persistence
│                       └── repository
│                           ├── SqlRepositoryAdapter.class
│                           └── SqlRepositoryProvider.class
于 2019-03-30T15:41:33.123 回答