wildfly-maven-plugin Есть ли способ указать jboss.server.base.dir
Теперь я пытался запустить экземпляры сервера wildfly с помощью плагина maven, а не 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, он, кажется, всегда ищет файл конфигурации в стандартной папке "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 --- 20 июня 2017 г. 15:31:03 org.xnio.Xnio ИНФОРМАЦИЯ: версия XNIO 3.3.1. Финал 20 июня 2017 г. 15:31:03 org.xnio.nio.NioXnio ИНФОРМАЦИЯ: Версия реализации XNIO NIO 3.3.1. Финал 20 июня 2017 г. 15: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.Final
[INFO] STANDALONE сервер запускается. 15:31:06,758 ИНФОРМАЦИЯ [org.jboss.modules] (основная) Модули JBoss версии 1.5.1.Final java.lang.IllegalStateException: WFLYCTL0214: Не удалось получить основной файл: standalone-empty.xml. Указанные файлы должны относиться к конфигурации dir: C:\dev\Widlfly10\wildfly-10. 0.0.Final\standalone\configuration в org.jboss.as.controller.persistence.ConfigurationFile.determineMainFile(ConfigurationFile.java:311) в org.jboss.as.controller.persistence.ConfigurationFile.(ConfigurationFile.java:172) в организации.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(собственный метод) в sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) в sun.reflect.DelegatingMethodAccessorjjjjjj.reflect.Method.invoke(Method.java:498) в org.jboss.modules.Module.run(Module.java:329)
Вышеуказанное исключение ясно показывает, что он хочет найти файл конфигурации в папке: 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
Интересно, что если сделать путь к базовому каталогу недействительным. Скажите, что я называю базу Dir 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 ИНФОРМАЦИЯ [org.jboss.modules] (поток: основной) JBoss Modules версия 1.5.1.Final java.lang.IllegalStateException: WFLYSRV0122: Базовый каталог сервера не существует: LALLALALLA at 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) в sun.reflect.NativeMethodAccessorImpl.invoke0(собственный метод) в 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>