在 WildFly 10 中添加 jars 作为部署
adding jars as deployment in WildFly 10
有没有办法,我们可以像在 weblogic
服务器中那样在 WildFly 10
中将 jar 部署为 library/deployment?或者我们可以将 jars 放在服务器的任何文件夹中并将这些依赖项定义为 provided
?
要在 Jboss/Wildfly 中将外部 jar 添加为 "library",您可以将其定义为安装中的模块,或将其添加到现有模块。
有关如何在 Wildfly 中添加模块的更多详细信息,请参阅此 link。
我在 WildFly 10
服务器上部署 jar
s 而不是制作 war 文件的一部分的方法定义如下:
1) 将所有罐子放入 wildfly\modules\system\layers\base\com\abcProject\main
并放置一个名为 module.xml
的文件,其中包含以下内容:
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.3" name="com.abcProject">
<resources>
<resource-root path="aspectjrt-1.6.8.jar"/>
<resource-root path="aspectjweaver-1.6.8.jar"/>
<resource-root path="aopalliance-1.0.jar"/>
<resource-root path="guava-18.0.jar"/>
</resources>
<dependencies>
<module name="javaee.api"/>
<module name="org.apache.commons.logging"/>
<module name="org.jboss.vfs"/>
</dependencies>
其中 resources
是您的 abcProject/main
文件夹中的所有 jars
,dependencies
是您的 jars
所在的所有 jars
是相关的,存在于 wildfly\modules\system\layers\base
个文件夹中。
2) 然后在您的项目中,在 WEB-INF
文件夹中添加一个名为 jboss-deployment-structure.xml
的文件,其内容如下:
<?xml version="1.0"?>
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<deployment>
<dependencies>
<module name="com.abcProject" >
<imports>
<include path="META-INF**"/>
<include path="org**"/>
</imports>
</module>
</dependencies>
</deployment>
3) 现在将 pom
文件中所有 dependencies
的 scope
设置为 provided
,您已将 jars
放入 abcProject/main
文件夹。
现在就这些了运行您的项目将从服务器获取所有 jar
,并且不会在编译期间包含在 war
文件中。
有没有办法,我们可以像在 weblogic
服务器中那样在 WildFly 10
中将 jar 部署为 library/deployment?或者我们可以将 jars 放在服务器的任何文件夹中并将这些依赖项定义为 provided
?
要在 Jboss/Wildfly 中将外部 jar 添加为 "library",您可以将其定义为安装中的模块,或将其添加到现有模块。
有关如何在 Wildfly 中添加模块的更多详细信息,请参阅此 link。
我在 WildFly 10
服务器上部署 jar
s 而不是制作 war 文件的一部分的方法定义如下:
1) 将所有罐子放入 wildfly\modules\system\layers\base\com\abcProject\main
并放置一个名为 module.xml
的文件,其中包含以下内容:
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.3" name="com.abcProject">
<resources>
<resource-root path="aspectjrt-1.6.8.jar"/>
<resource-root path="aspectjweaver-1.6.8.jar"/>
<resource-root path="aopalliance-1.0.jar"/>
<resource-root path="guava-18.0.jar"/>
</resources>
<dependencies>
<module name="javaee.api"/>
<module name="org.apache.commons.logging"/>
<module name="org.jboss.vfs"/>
</dependencies>
其中 resources
是您的 abcProject/main
文件夹中的所有 jars
,dependencies
是您的 jars
所在的所有 jars
是相关的,存在于 wildfly\modules\system\layers\base
个文件夹中。
2) 然后在您的项目中,在 WEB-INF
文件夹中添加一个名为 jboss-deployment-structure.xml
的文件,其内容如下:
<?xml version="1.0"?>
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<deployment>
<dependencies>
<module name="com.abcProject" >
<imports>
<include path="META-INF**"/>
<include path="org**"/>
</imports>
</module>
</dependencies>
</deployment>
3) 现在将 pom
文件中所有 dependencies
的 scope
设置为 provided
,您已将 jars
放入 abcProject/main
文件夹。
现在就这些了运行您的项目将从服务器获取所有 jar
,并且不会在编译期间包含在 war
文件中。