13

Spring フレームワーク プロジェクト用にマシンに依存しないビルド環境をセットアップしようとしていますが、ant 構成が機能していないようです。私はかなり検索しましたが、env.* 参照はすぐに使えると誰もが考えているようです。誰かが私のやり方の誤りを見つけることができるでしょうか?

エラー:

bash-3.1$ ant build
Buildfile: c:\Users\mkumpan\Projects\Spring testing\build.xml

BUILD FAILED
c:\Users\mkumpan\Projects\Spring testing\build.xml:85: c:\Users\mkumpan\Projects\Spring testing\${env.CATALINA_HOME}\lib does not exist.

build.xml:85:

<taskdef name="install" classname="org.apache.catalina.ant.InstallTask">
    <classpath refid="catalina-ant-classpath"/>
</taskdef>

catalina-ant-classpath リファレンス:

<path id="catalina-ant-classpath">
    <fileset dir="${appserver.lib}">
        <include name="catalina-ant.jar"/>
    </fileset>
</path>

build.properties で宣言された ${appserver.lib}:

appserver.home=${env.CATALINA_HOME}
appserver.lib=${appserver.home}/lib

deploy.path=${appserver.home}/webapps

環境変数のエコーは次のように機能します。

bash-3.1$ echo $CATALINA_HOME
C:\Program Files\Tomcat

2 つの大きな質問:

  • なぜenvvarを解析しないのですか?
  • envvarへの絶対パスを前に追加するのはなぜですか?
4

3 に答える 3

21

build.xml次の行をファイルに追加します。

<property environment="env"/>

環境変数を参照するときにプレフィックスを定義します。環境属性のプロパティリファレンス ページから:

環境変数を取得するときに使用するプレフィックス。したがって、environment="myenv" を指定すると、プロパティ名 "myenv.PATH" または "myenv.TERM" を介して OS 固有の環境変数にアクセスできます。プロパティ名の最後に「.」を付ける場合は注意してください。2 倍にはなりません。つまり、environment="myenv." です。「myenv.PATH」および「myenv.TERM」を介した環境変数へのアクセスは引き続き許可されます。この機能は現在、一部のプラットフォームにのみ実装されています。この機能がサポートされているプラ​​ットフォームの数を増やすために、気軽にパッチを送ってください;)。また、オペレーティング システムの環境変数が大文字と小文字を区別しない場合でも、プロパティでは大文字と小文字が区別されることに注意してください。例: Windows 2000'

于 2013-09-10T08:30:27.737 に答える