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

时间:2017-03-16 00:23:52

标签: java maven wildfly

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

库依赖关系包括如下:

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

我正在使用WildFly Maven插件。我有什么不同的做法吗?

1 个答案:

答案 0 :(得分:3)

<scope>provided</scope> - 当你说你提出你说这个lib将在运行时可用而不需要用当前的jar编译。

因此,使用mvn compile/install构建的工件不会包含library依赖项。

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

您收到错误是因为您在应用程序容器中没有provided library.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. 将范围从提供更改为编译:{{1​​}}