Java 启动并配置WildFly服务器,并在1个maven运行中使用WildFly maven插件部署应用程序
我想找到一种运行maven的方法,以便它能够:Java 启动并配置WildFly服务器,并在1个maven运行中使用WildFly maven插件部署应用程序,java,maven,wildfly,Java,Maven,Wildfly,我想找到一种运行maven的方法,以便它能够: 以独立模式启动WildFly服务器实例(WildFly:run) 部署hsqldb驱动程序 添加数据源 部署应用程序 问题在于: wildfly:run块,这样就不会执行其他maven目标 必须先运行服务器实例,然后才能对其进行配置或部署应用程序(daaa) 我想到的一个可能的解决办法是: wildfly:start 配置服务器并部署应用程序 直到用户按下CTRL-C,是否有一个maven插件可以做到这一点 我不太明白您的用例是什么,或者
- 以独立模式启动WildFly服务器实例(
)WildFly:run
- 部署hsqldb驱动程序
- 添加数据源
- 部署应用程序
块,这样就不会执行其他maven目标wildfly:run
- 必须先运行服务器实例,然后才能对其进行配置或部署应用程序(daaa)
wildfly:start
- 配置服务器并部署应用程序
- 直到用户按下CTRL-C,是否有一个maven插件可以做到这一点
wildfly:start
后跟wildfly:deploy
是不够的
您是在进行手动测试还是自动测试
对于集成测试,如果
wildfly-maven插件
不适合您的需要,请查看它的maven和wildfly支持。wildfly:start目标不会阻塞,并且它有一个关闭钩子,可以在maven退出后销毁进程。可能值得添加一个配置属性,以不注册关闭挂钩并保持进程运行。。但我已经离题了
由于maven基于生命周期阶段运行目标,因此您可以在
包
阶段之前运行的阶段中调用开始
和部署
目标。运行
目标需要包
阶段,因此之前的任何操作都应该有效。您可以在运行目标的部署之前使用参数:
因为wildfly:start
不会阻塞,所以一旦wildfly:start
和wildfly:deploy
完成,启动的wildfly实例将被关闭。我已经尝试过了,但是当wildfly:run
之后执行wildfly:start
时,它会尝试使用相同的端口启动一个新的wildfly实例,当然失败了,我也有同样的问题。mvn wildfly:开始不阻塞。“你能想出一个解决办法吗?”范森不,我想出了一些我现在不记得的解决办法,但不是一个最终的解决办法。如果您有时间,我鼓励您提供James在其回答中提到的新功能()——一个不注册关闭挂钩并保持流程运行的配置属性。如果项目经理给我时间,我会考虑这样做。
<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)