将具有本地依赖项的Maven项目部署到WildFly

问题描述:

我已经设置了一个具有本地依赖项的WildFly Maven项目。我编译用作本地依赖项的库(mvn compile),并将它安装在本地Maven存储库中(mvn install)。这样做可以让我使用Maven成功编译WildFly项目。我遇到的问题是无法部署(mvn wildfly:deploy),因为它无法找到本地库中引用的类,因此导致引发NoClassDefFoundError异常。将具有本地依赖项的Maven项目部署到WildFly

<dependency> 
    <groupId>mygroup</groupId> 
    <artifactId>library</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <scope>provided</scope> 
</dependency> 

我使用WildFly Maven插件:

如下库的依赖是包括在内。有什么我应该做的不同吗?

+0

你部署一个EAR,一个WAR还是一个JAR? –

+0

我正在部署为WAR文件 – FHannes

<scope>provided</scope> - 当你提供的时候,你说这个库在运行时可用,不需要用当前jar编译。

因此,使用mvn compile/install构建的工件将不包括library依赖关系。

这意味着您正在运行的应用程序容器(wildfly)必须提供jar。

由于您在应用程序容器中没有providedlibrary.jar,所以您会收到错误消息,也不必包含在构建文件中。

解决办法有两个:

  1. 明确定义的依赖在你的JBoss配置: https://access.redhat.com/documentation/en-US/JBoss_Enterprise_Application_Platform/6.1/html/Development_Guide/Add_an_Explicit_Module_Dependency_to_a_Deployment1.html

  2. 变化,从规定的范围进行编译:<scope> compile </scope>