8

2つのcssアグリゲーションを作成しようとしています。1つはパブリックサイト用で、もう1つはサイトのアプリケーション部分用です。

出力ファイルを作成すると${project.build.directory}/${project.build.finalName}/css/public-all.css、すべてが機能します。

[INFO] generate aggregation : C:\Users\me\IdeaProjects\myapp-development\target\myapp-1.0\css\public-all.css
[INFO] public-all.css (32029b)
[INFO] generate aggregation : C:\Users\me\IdeaProjects\myapp-development\target\myapp-1.0\css\application-all.css
[INFO] application-all.css (50446b)

しかし、集約されたファイルをなどの別のサブディレクトリに出力しようとすると${project.build.directory}/${project.build.finalName}/css/public/all.css、次のエラーが発生します。

[INFO] generate aggregation : C:\Users\me\IdeaProjects\myapp-development\target\myapp-1.0\css\public\all.css
[WARNING] all.css not created
[INFO] generate aggregation : C:\Users\me\IdeaProjects\myapp-development\target\myapp-1.0\css\application\all.css
[WARNING] all.css not created

なぜ作成されないのですか?なぜこれは警告であり、プラグインの完全な失敗ではないのですか?

pom.xmlこれが私が集計を指定している部分です。一体なぜこれが機能しないのですか?

                    <aggregation>
                        <removeIncluded>false</removeIncluded>
                        <insertNewLine>true</insertNewLine>
                        <output>${project.build.directory}/${project.build.finalName}/css/public/all.css</output>
                        <includes>
                            <include>**/public/base.css</include>
                            <include>**/fancybox/jquery.fancybox-1.3.4.css</include>
                        </includes>
                    </aggregation>
                    <aggregation>
                        <removeIncluded>false</removeIncluded>
                        <insertNewLine>true</insertNewLine>
                        <output>${project.build.directory}/${project.build.finalName}/css/application/all.css</output>
                        <includes>
                            <include>**/application/reset.css</include>
                            <include>**/application/text.css</include>
                            <include>**/application/960.css</include>
                            <include>**/smoothness/jquery-ui-1.8.11.custom.css</include>
                            <include>**/application/base.css</include>
                            <include>**/jcrop/jquery.jcrop.css</include>
                            <include>**/farbtastic/farbtastic.css</include>
                        </includes>
                    </aggregation>

チェックしたところ、これらのディレクトリも存在します。存在しないディレクトリをポイントしようとすると、yuicompressor:compress失敗します。有効なディレクトリが与えられた場合にビルドプロセスが実際に成功する理由がわかりませんが、それらのディレクトリにファイルは作成されません。意味がない!

ファイルシステムのセキュリティの問題かもしれないと思いましたが、そうではありません。

なぜこれがうまくいかないのか、私は本当に困惑しています。

助けてください。

4

1 に答える 1

12

私は同様の問題を抱えていましたが、js構造のルートディレクトリを指すようにinputDirを構成して解決しました。デフォルトでは、プラグインは出力ファイルの親ディレクトリをベースとして取り、インクルードはそれに対して相対的に動作します (絶対パスでない場合)。

<inputDir>src/main/js</inputDir>
<includes>
  <include>**/*.js</include>
</includes>
<output>${webapp.root.dir}/js/${project.artifactId}-${project.version}.js</output>

お役に立てれば :)

于 2012-01-20T13:35:48.537 に答える