1

我有一个基于 Thorntail 的项目 A,它使用 Thorntail bom-all 和许多 Thorntail 依赖项:

pom.xml

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>io.thorntail</groupId>
                <artifactId>bom-all</artifactId>
                <version>${version.thorntail}</version>
                <scope>import</scope>
                <type>pom</type>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <dependency>
            <groupId>io.thorntail</groupId>
            <artifactId>jaxrs</artifactId>
        </dependency>
        <dependency>
            <groupId>io.thorntail</groupId>
            <artifactId>cdi</artifactId>
        </dependency>
        ...

那里的一切都在项目 A 中运行良好。


我想在项目 B 中使用项目 A 的一些类。为此,我在项目 A 中配置了 maven-war-plugin,如下所示,另外还创建了一个 classes-jar:

<plugin>
   <groupId>org.apache.maven.plugins</groupId>
   <artifactId>maven-war-plugin</artifactId>
   <version>${version.maven-war-plugin}</version>
   <configuration>
      <attachClasses>true</attachClasses>
   </configuration>
</plugin>

我的项目 B 的设置与项目 A 非常相似,使用相同的 Thorntail 版本以及 Thorntail bom-all 和许多 Thorntail 依赖项。为了使用项目 A 中的类,我将其添加到项目 B 的 pom.xml 中:

<dependency>
   <groupId>my.group</groupId>
   <artifactId>project.a</artifactId>
   <version>1.0.0-SNAPSHOT</version>
   <classifier>classes</classifier>
</dependency>

但是,当我想运行项目 B 的 Thorntail uberjar 时,我得到了典型的 WELD-001408 异常,问题始终是某种 Thorntail 依赖项:

Caused by: org.jboss.weld.exceptions.DeploymentException: WELD-001408: Unsatisfied dependencies for type Archive with qualifiers @Default
  at injection point [BackedAnnotatedParameter] Parameter 1 of [BackedAnnotatedConstructor] @Inject public org.wildfly.swarm.jaxrs.runtime.DefaultApplicationDeploymentProcessor(Archive)
  at org.wildfly.swarm.jaxrs.runtime.DefaultApplicationDeploymentProcessor.<init>(DefaultApplicationDeploymentProcessor.java:0)

在项目 B 的 pom.xml 中,我尝试使用排除元素从项目 A 依赖项中排除 Thorntail 依赖项(单独使用 * 作为 artifactId),但在 Thorntail 启动时我仍然遇到相同的错误。


有人知道如何处理这个问题吗?任何帮助表示赞赏 - 谢谢!

4

0 回答 0