繁体   English   中英

启动并配置WildFly服务器,并在1个maven运行中使用wildfly-maven-plugin部署应用程序

[英]Start and configure a WildFly server and deploy the app using wildfly-maven-plugin in 1 maven run

我想有办法运行maven,以便:

  • 以独立模式启动WildFly服务器实例( wildfly:run
  • 部署hsqldb驱动程序
  • 添加数据源
  • 部署应用程序

问题是:

  • wildfly:run块,因此不能执行其他maven目标
  • 服务器实例必须先运行才能配置或部署应用程序(daaa)

我想到的一个可能的工作是:

  • wildfly:start
  • 配置服务器并部署应用程序
  • 阻止,直到用户按下CTRL-C,是否有maven插件执行此操作?

您可以在运行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阶段之前运行的阶段调用startdeploy目标。 run目标需要package阶段,因此在此之前的任何事情都应该有效。

我不太明白你的用例是什么或为什么是wildfly:start后跟wildfly:deploy还不够。

你在做手动或自动测试吗?

对于集成测试,如果wildfly-maven-plugin不适合您的需求,请查看Cargo及其Maven和WildFly支持。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM