我希望有办法运行maven,以便:
wildfly:run
)问题在于:
wildfly:run
阻止所以不能执行其他maven目标我想到的一个可能的工作是:
wildfly:start
答案 0 :(得分:4)
您可以使用运行goal
(source)的 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>
如果您需要为数据库驱动程序添加其他库,可以执行类似的操作(source):
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)
答案 1 :(得分:2)
wildfly:start
目标不会阻止,并且它有一个关闭钩子来在maven退出时销毁进程。可能值得添加配置属性以不注册关闭挂钩并使进程保持运行.. ..但是我正在离开主题。
由于maven基于生命周期阶段运行目标,因此您可以在start
阶段之前的阶段调用deploy
和package
目标。 run
目标需要package
阶段,因此之前的任何事情都应该有效。
答案 2 :(得分:1)
我不太了解您的用例是什么或为什么wildfly:start
后面跟wildfly:deploy
是不够的。
您在进行手动或自动测试吗?
对于集成测试,如果wildfly-maven-plugin
不符合您的需求,请查看Cargo及其Maven和WildFly支持。