wildfly-maven-plugin有没有办法指定jboss.server.base.dir

时间:2017-06-20 13:43:23

标签: wildfly wildfly-maven-plugin

我现在尝试使用maven插件启动wildfly服务器实例,而不是JBOSS_HOME / bin / standalone.bat

查看插件文档,我看不出如何能够影响服务器的基础目录。

为了说明这一点,这里是一个使用独立蝙蝠的工作命令行示例。

standalone.bat --server-config=standalone-empty.xml -Djboss.server.base.dir=C:\dev\Widlfly10\wildfly-10.0.0.Final\standalone-cli

另一方面,如果我们尝试使用maven-plugin,他似乎总是在默认的" standalone"中寻找配置文件。文件夹中。

以下是可能的启动服务器命令尝试的说明。

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

以下是触发此命令时最终发生的事情的插图。

  

[INFO] --- wildfly-maven-plugin:1.1.0.Final:start(default-cli)@   wildfly-maven-plugin-runner --- Jun 20,2017 3:31:03 PM org.xnio.Xnio    信息:XNIO版本3.3.1.Final 2017年6月20日下午3:31:03   org.xnio.nio.NioXnio信息:XNIO NIO实施版   3.3.1.Final Jun 20,2017 3:31:03 PM org.jboss.remoting3.EndpointImpl INFO:JBoss Remoting version 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.Final

     

[INFO] STANDALONE服务器正在启动。 15:31:06,758 INFO   [org.jboss.modules](主要)JBoss Modules版本1.5.1.Final   java.lang.IllegalStateException:WFLYCTL0214:无法获取主文件:   独立-empty.xml。指定的文件必须相对于   配置目录:C:\ dev \ Widlfly10 \ wildfly-10。   0.0.Final \独立\配置           在org.jboss.as.controller.persistence.ConfigurationFile.determineMainFile(ConfigurationFile.java:311)           在org.jboss.as.controller.persistence.ConfigurationFile。(ConfigurationFile.java:172)           在org.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)           at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)           at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)           at java.lang.reflect.Method.invoke(Method.java:498)           在org.jboss.modules.Module.run(Module.java:329)

上述异常清楚地说明了他想在文件夹中找到配置文件: C:\ dev的\ Widlfly10 \ wildfly-10。 0.0.Final \ standalone \ configuration

而这我不想发生。 存在多个独立域,具有独立的日志文件夹。

有没有办法通过插件的其他配置属性,如" serverArgs"那可以解决这个问题吗?

或者这是插件限制吗?

可以在以下位置找到该插件的文档。 https://docs.jboss.org/wildfly/plugins/maven/latest/run-mojo.html

看起来maven插件实际上是bugy。 可以使用以下命令启动服务器:

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属性时,我们看到应用程序由插件运行,并带有以下commad:

  

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 \独立\日志   -Djboss.server.config.dir = C:\ dev的\ Widlfly10 \ wildfly-10.0.0.Final \独立\配置   -c = standalone-empty.xml -Djboss.server.base.dir = standalone-cli

有趣的是,如果使基本目录的路径无效。 假设我将基地目录命名为LALALALLALA。 E.g。

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           在org.jboss.as.server.ServerEnvironment。(ServerEnvironment.java:430)           在org.jboss.as.server.Main.determineEnvironment(Main.java:297)           在org.jboss.as.server.Main.main(Main.java:94)           at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)           at 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>

0 个答案:

没有答案