![](/img/trans.png)
[英]how to run service with WildFly server by wildfly-maven-plugin?
[英]Start and configure a WildFly server and deploy the app using wildfly-maven-plugin in 1 maven run
我想有办法运行maven,以便:
wildfly:run
) 问题是:
wildfly:run
块,因此不能执行其他maven目标 我想到的一个可能的工作是:
wildfly:start
您可以在运行goal
部署之前使用参数( 源 ):
<plugin>
<groupId>org.wildfly.plugins</groupId>
<artifactId>wildfly-maven-plugin</artifactId>
<configuration>
<beforeDeployment>
<commands>
<command>data-source add --jndi-name=java:jboss/datasources/OracleDS --name=testDB --connection-url=jdbc:h2:mem:test;DB_CLOSE_DELAY=-1 --driver-name=h2 --user-name=sa --password=sa</command>
</commands>
</beforeDeployment>
</configuration>
</plugin>
如果您需要为数据库驱动程序添加其他库,则可以执行类似的操作( 源代码 ):
module add --name=org.postgres --resources=/tmp/postgresql-9.3-1101.jdbc41.jar --dependencies=javax.api,javax.transaction.api
/subsystem=datasources/jdbc-driver=postgres:add(driver-name="postgres",driver-module-name="org.postgres",driver-class-name=org.postgresql.Driver)
wildfly:start
目标不会阻塞,并且它有一个关闭钩子,一旦maven退出就会破坏进程。 可能值得添加一个配置属性来不注册关闭钩子并使进程保持运行..但是我正在离开主题。
由于maven基于生命周期阶段运行目标,因此您可以在package
阶段之前运行的阶段调用start
和deploy
目标。 run
目标需要package
阶段,因此在此之前的任何事情都应该有效。
我不太明白你的用例是什么或为什么是wildfly:start
后跟wildfly:deploy
还不够。
你在做手动或自动测试吗?
对于集成测试,如果wildfly-maven-plugin
不适合您的需求,请查看Cargo及其Maven和WildFly支持。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.