创建数据源并部署应用程序

Create datasource and deploy application

我有一个创建 war 文件的 Maven 项目,应该通过 wildfly:run.
将其部署到捆绑的 wildfly 服务器 到目前为止一切正常,但我需要在部署之前创建一个数据源。

我尝试将添加资源目标绑定到部署、安装或打包等不同阶段。 None 他们工作了。

怎么了?

一个想法是使用 wildfly:start 附加执行来添加数据源并部署应用程序,但我不知道如何。

<groupId>org.wildfly.plugins</groupId>
<artifactId>wildfly-maven-plugin</artifactId>
<executions>
    <execution>
        <id>add-datasource</id>
        <phase>deploy</phase>
        <goals>
            <goal>add-resource</goal>
        </goals>
        <configuration>
            <address>subsystem=datasources,data-source=java:jboss/testDB</address>
            <resources>
                <resource>
                    <properties>
                        <jndi-name>java:jboss/testDB</jndi-name>
                        <enabled>true</enabled>
                        <connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1</connection-url>
                        <driver-class>org.h2.Driver</driver-class>
                        <driver-name>h2</driver-name>
                        <user-name>sa</user-name>
                        <password>sa</password>
                    </properties>
                </resource>
            </resources>
        </configuration>
    </execution>
</executions>

我的解决方案是使用 运行 目标和 beforeDeployment 目标:

<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>