1

私は Maven プラグインを初めて使用します。毎日のビルド プロセスの一部として JavaScript アプリを縮小するために、このプラグインを機能させて sencha cmd ツールを実行する必要があります。

現在、実行可能タグにはハードコードされたパスがありますが、パスを環境変数として指定し、以下のコードでその環境変数にアクセスして、任意のマシンで実行できるかどうか疑問に思っていますか?

<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>            
4

2 に答える 2

1

https://github.com/dobromyslov/sencha-extjs-mavenで私の Sencha ExtJS 5 + Sencha Cmd 5 + Maven 統合の例を確認して ください。

環境変数を設定する必要があります:

  • 次の方法でコンソールにエクスポートします。

    $ export SENCHA_CMD="/path/to/your/Sencha/Cmd/5.0.0.116/sencha"

  • また、この export ステートメントを~/.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
于 2014-04-16T12:20:49.403 に答える
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 にプロパティ ファイルをロードすることにより、さまざまな環境で使用される値を変更できます。ここには多くのオプションがあります。

編集:後者の提案は、次のリンク(およびおそらく他の場所)のSOでカバーされていることがわかりました:

Maven POM ファイルからのプロパティ ファイルの読み取り

于 2014-02-25T17:10:01.100 に答える