为什么本地Quarkus可执行文件不启动具有Maven多模块结构的Jax-rs资源?

时间:2019-03-26 22:28:47

标签: java quarkus

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

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

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

启动时:

mvn clean package -Pnative 

然后是我的本地图片

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

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

我可以将端点放入我的投资组合应用程序中,并且可以正常工作,但是我不想破坏六角形的体系结构。

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

1 个答案:

答案 0 :(得分:0)

根据@gsmet的建议,我设法纠正了在我的父pom中添加jandex maven plugin的问题

 <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