我现在尝试使用 maven 插件启动 Wildfly 服务器实例,而不是 JBOSS_HOME/bin/standalone.bat
查看插件文档,我看不到如何影响服务器的基本目录。
为了说明这一点,这里有一个使用独立 bat 的工作命令行示例。
standalone.bat --server-config=standalone-empty.xml -Djboss.server.base.dir=C:\dev\Widlfly10\wildfly-10.0.0.Final\standalone-cli
另一方面,如果我们尝试使用 maven-plugin,他似乎总是在默认的“独立”文件夹中寻找配置文件。
以下是可能的启动服务器命令尝试的说明。
mvn org.wildfly.plugins:wildfly-maven-plugin:1.1.0.Final:start -Dwildfly.server.type=STANDALONE -Djboss-as.home=C:\dev\Widlfly10\wildfly-10.0.0.Final -Djboss.server.base.dir=C:\dev\Widlfly10\wildfly-10.0.0.Final\standalone-cli -Dwildfly.serverConfig=standalone-empty.xml
以下是您触发此命令时最终发生的情况的说明。
[信息] --- wildfly-maven-plugin:1.1.0.Final:start (default-cli) @ wildfly-maven-plugin-runner --- 2017 年 6 月 20 日下午 3:31:03 org.xnio.Xnio信息:XNIO 版本 3.3.1.Final 2017 年 6 月 20 日下午 3:31:03 org.xnio.nio.NioXnio 信息:XNIO NIO 实施版本 3.3.1.Final 2017 年 6 月 20 日下午 3:31:03 org.jboss .remoting3.EndpointImpl INFO:JBoss Remoting 版本 4.0.9.Final [INFO] JAVA_HOME=c:\PROGRA~1\Java\JDK18~1.0_1\jre [INFO] JBOSS_HOME=C:\dev\Widlfly10\wildfly-10.0。 0.决赛
[INFO] 独立服务器正在启动。15:31:06,758 INFO [org.jboss.modules](主)JBoss 模块版本 1.5.1.Final java.lang.IllegalStateException:WFLYCTL0214:无法获取主文件:standalone-empty.xml。指定的文件必须相对于配置目录:C:\dev\Widlfly10\wildfly-10。org.jboss.as.controller.persistence.ConfigurationFile.(ConfigurationFile.java:172) 上 org.jboss.as.controller.persistence.ConfigurationFile.(ConfigurationFile.java:172) 上 org.jboss.as.controller.determineMainFile(ConfigurationFile.java:311) 上的 0.0.Final\standalone\configuration .jboss.as.server.ServerEnvironment.(ServerEnvironment.java:456) 在 org.jboss.as.server.Main.determineEnvironment(Main.java:297) 在 org.jboss.as.server.Main.main(Main. java:94) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun。
上面的异常清楚的说明他想在文件夹中找到配置文件:C:\dev\Widlfly10\wildfly-10。0.0.Final\独立\配置
而这我不想发生。存在多个独立域,具有独立的日志文件夹。
有没有一种方法可以通过插件的其他配置属性(例如“serverArgs”)来解决这个问题?
或者这是插件限制?
该插件的文档可以在以下位置找到。 https://docs.jboss.org/wildfly/plugins/maven/latest/run-mojo.html
看起来 maven 插件实际上是错误的。可以使用以下命令启动服务器:
mvn org.wildfly.plugins:wildfly-maven-plugin:1.1.0.Final:start -Dwildfly.server.type=STANDALONE -Djboss-as.home=C:\dev\Widlfly10\wildfly-10.0.0.Final -Dwildfly.serverArgs="-Djboss.server.base.dir=C:/dev/Widlfly10/wildfly-10.0.0.Final/standalone-cli" -Dwildfly.serverConfig=../../standalone-cli/configuration/standalone-empty.xml
但是当我们查看 jvm 属性时,我们会看到应用程序是由插件运行的,使用以下逗号:
C:\dev\Widlfly10\wildfly-10.0.0.Final\modules org.jboss.as.standalone -Djboss.home.dir=C:\dev\Widlfly10\wildfly-10.0.0.Final -Djboss.server.base .dir=C:\dev\Widlfly10\wildfly-10.0.0.Final\standalone -Djboss.server.log.dir=C:\dev\Widlfly10\wildfly-10.0.0.Final\standalone\log -Djboss.server .config.dir=C:\dev\Widlfly10\wildfly-10.0.0.Final\standalone\configuration -c=standalone-empty.xml -Djboss.server.base.dir=standalone-cli
有趣的是,如果使基本目录的路径无效。假设我将基本目录命名为 LALALALLALA。例如
mvn org.wildfly.plugins:wildfly-maven-plugin:1.1.0.Final:start -Dwildfly.server.type=STANDALONE -Djboss-as.home=C:\dev\Widlfly10\wildfly-10.0.0.Final -Dwildfly.serverArgs="-Djboss.server.base.dir=LALLALALLA" -Dwildfly.serverConfig=standalone-empty.xml
那么我们有以下很有意义的错误:[INFO] STANDALONE 服务器正在启动。
2017-06-20 17:24:30,417 INFO [org.jboss.modules](线程:主)JBoss 模块版本 1.5.1.Final java.lang.IllegalStateException:WFLYSRV0122:服务器基础目录不存在:组织中的 LALLALALLA。 jboss.as.server.ServerEnvironment.(ServerEnvironment.java:430) at org.jboss.as.server.Main.determineEnvironment(Main.java:297) at org.jboss.as.server.Main.main(Main.java :94) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
因此,base.dir 属性似乎以一种或另一种方式发挥了作用。但最终,当基本目录的文件夹有效时,最终使用的文件夹始终是独立文件夹,而不是通过调用 maven 插件指定的文件夹。
用于调用插件的人工 pom.xml 如下所示:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.artificialpom</groupId>
<artifactId>wildfly-maven-plugin-runner</artifactId>
<packaging>pom</packaging>
<version>0.0.0-SNAPSHOT</version>
<name>Wildfly Server Maven Plugin</name>
<url>http://maven.apache.org</url>
<dependencies>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.wildfly.plugins</groupId>
<artifactId>wildfly-maven-plugin</artifactId>
<version>1.2.0.Alpha5</version>
<configuration>
<server-args>
<server-arg>-Djboss.server.base.dir=C:\dev\Widlfly10\wildfly-10.0.0.Final\standalone-cli</server-arg>
</server-args>
</configuration>
</plugin>
</plugins>
</build>
</project>