Как я могу установить путь в этом плагине Maven?
Я новичок в плагинах Maven, и мне нужно, чтобы этот плагин работал, чтобы запустить инструмент sencha cmd для минимизации нашего JavaScript-приложения как часть ежедневного процесса сборки.
В настоящее время исполняемый тег имеет жестко заданный путь, но мне интересно, могу ли я указать путь в качестве переменной среды, а затем получить доступ к этой переменной среды в приведенном ниже коде, чтобы его можно было запустить на любой машине?
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<executions>
<execution>
<id>sencha-compile</id>
<phase>compile</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>C:\Sencha\Sencha\Cmd\4.0.2.67\sencha.exe</executable>
<arguments>
<argument>app</argument>
<argument>build</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
2 ответа
Посмотрите мой пример интеграции Sencha ExtJS 5 + Sencha Cmd 5 + Maven по адресу: https://github.com/dobromyslov/sencha-extjs-maven
Вы должны установить переменную окружения:
Экспорт в консоли через:
$ export SENCHA_CMD = "/ path / to / your / Sencha / Cmd / 5.0.0.116 / sencha"
Также вы можете добавить это заявление на экспорт
~/.bashrc
или же/etc/profile
файл, чтобы сделать его постоянным.- Или добавьте новую переменную среды в Windows.
Установите среду сборки Sencha Cmd:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- Default build environment -->
<sencha.env>production</sencha.env>
</properties>
<profiles>
<!-- Development profile -->
<profile>
<id>dev</id>
<activation>
<property>
<name>env</name>
<value>development</value>
</property>
</activation>
<properties>
<sencha.env>testing</sencha.env>
</properties>
</profile>
<!-- Production profile -->
<profile>
<id>prod</id>
<activation>
<property>
<name>env</name>
<value>production</value>
</property>
</activation>
<properties>
<sencha.env>production</sencha.env>
</properties>
</profile>
</profiles>
Затем используйте следующий плагин Maven:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<executions>
<execution>
<id>sencha-compile</id>
<phase>compile</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<!-- Set path to your Sencha Cmd executable-->
<executable>${env.SENCHA_CMD}</executable>
<arguments>
<argument>-sdk</argument>
<argument>${basedir}/src/main/webapp</argument>
<argument>app</argument>
<argument>build</argument>
<argument>--clean</argument>
<argument>--environment</argument>
<argument>${sencha.env}</argument>
<argument>--destination</argument>
<argument>${basedir}/src/main/webapp/build</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
И беги
$ mvn compile
Чтобы ответить на ваш вопрос, вы можете ссылаться на системные переменные среды из файла maven pom с помощью следующего синтаксиса:${env.NAME_OF_VARIABLE}
Смотрите эту ссылку для более подробной информации: https://maven.apache.org/pom.html
Если вы назвали переменную среды PATH_TO_SENCHA_EXE
Вы можете сослаться на это так:<executable>${env.PATH_TO_SENCHA_EXE}sencha.exe</executable>
В качестве альтернативы переменным среды вы можете рассмотреть возможность создания в вашем pom свойства, содержащего этот путь. Затем вы можете изменить значение, используемое для разных сред, передав новое значение для свойства в командной строке или загрузив файл свойств в pom, который может содержать это свойство. Здесь есть много вариантов.
Изменить: я обнаружил, что последнее предложение было рассмотрено на SO по следующей ссылке (и, вероятно, в других местах):