0

apply タスクを使用してプロジェクト内の Sass スクリプトを「コンパイル」する Ant タスクを作成しようとしましたが、「そのようなファイルまたはディレクトリはありません」というエラーが表示され続けました。ビルドパスのスペースが原因かもしれないと思ったので、プロジェクトを移動するというトラブルを経験しましたが、Ant がパスを返すときにファイルセットのルート ディレクトリを省略しているように見えることがわかりました。これは、ターゲットがどのように見えるかです:

<target name="sass-compile" depends="properties">
    <apply executable="sass">
        <srcfile />
        <targetfile />

        <fileset dir="${project.src.dir}" includes="**/*.scss"  />
        <globmapper from="*.scss" to="*.css" />
    </apply>
</target>

トラブルシューティングを支援するために、実行可能ファイルを sass から echo に切り替えたところ、マッパーがこのようなパスを変換していることに気付きました...

/Users/me/Documents/Programming/workspace/Project/ src /java/com/proj/web/page/template/Template.scss

...これに...

/Users/me/Documents/Programming/workspace/Project/java/com/proj/web/page/template/Template.css

ターゲット ファイル パスに src ディレクトリがないことに注意してください。ここにバグがありますか、それとも何らかの形で予想されますか? ここで何が起こっているのか知りたいです。また、regexpmapper と、replacestring を使用した filtermapper を使用してみました。結果は同じです。

Mac で実行している Eclipse Helios にバンドルされている Ant 1.7.1 を実行しています。また、Mac と Linux の両方で Ant 1.8 を試しました。何も機能しません。誰にもアイデアはありますか?

4

2 に答える 2

0

それは正常な動作です。マッパーは、絶対パスではなく相対パスを使用します。パスは、ディレクトリの親である作業(おそらくベース)ディレクトリからの相対パスになりますsrc

applyタスクdest(グロブ) マッパーは、その属性で指定されたディレクトリへの相対パスを提供します。

単一のマッパーは、依存関係チェックのために dest 属性に関連するターゲット ファイルを指定します。dest 属性が指定されている場合、マッパーによって返される相対パス名を解決するためのベース ディレクトリとして使用されます。少なくとも 1 つのファイルセットまたはファイルリストが必要です。

src使用される相対パスは、指定されたファイルセットから導出されるため、先頭のディレクトリは含まれません。

頭に浮かぶオプションは次のとおりです。

  • basedirの代わりにプロジェクトのを使用しますproject.src.dir(うまくいくかもしれません)
  • <apply dest="src" ...(より良い)を使用してディレクトリを指定します
于 2011-02-01T07:24:26.170 に答える
0

${project.src.dir}フォルダ自体を除いて、マッパーが のコンテンツを操作しているようです。

srcinの親フォルダーを指定してみ て、望ましい結果が得られるかどうかを確認できますか${project.src.dir}?${basedir}

于 2011-02-01T07:06:32.390 に答える