0

我现在尝试使用 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>
4

0 回答 0