我是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>
答案 0 :(得分:0)
要回答您的问题,您可以使用以下语法从maven pom文件中引用系统环境变量:
${env.NAME_OF_VARIABLE}
有关详细信息,请参阅此链接: https://maven.apache.org/pom.html#Properties
如果您将环境变量命名为PATH_TO_SENCHA_EXE
,则可以像这样引用它:
<executable>${env.PATH_TO_SENCHA_EXE}sencha.exe</executable>
作为环境变量的替代方法,您可以考虑在pom中创建一个包含此路径的属性。然后,您可以通过在命令行上传递属性的新值或在pom中加载可能包含此属性的属性文件来更改用于不同环境的值。这里有很多选择。
编辑: 我发现后面的建议已在以下链接(可能还有其他地方)上进行了讨论:
答案 1 :(得分:0)
检查我的Sencha ExtJS 5 + Sencha Cmd 5 + Maven集成示例: https://github.com/dobromyslov/sencha-extjs-maven
您必须设置环境变量:
通过以下方式将其导出到控制台:
$ export SENCHA_CMD =&#34; /path/to/your/Sencha/Cmd/5.0.0.116/sencha"
此外,您可以将此导出语句添加到~/.bashrc
或/etc/profile
文件中,以使其永久保存。
设置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