如何在此Maven插件中设置路径?

时间:2014-02-25 16:30:16

标签: maven sencha-cmd

我是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 个答案:

答案 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中加载可能包含此属性的属性文件来更改用于不同环境的值。这里有很多选择。

编辑: 我发现后面的建议已在以下链接(可能还有其他地方)上进行了讨论:

Reading properties file from Maven POM file

答案 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文件中,以使其永久保存。

  • 或在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