Плагин компрессора Maven yui не может создать агрегацию с более длинным путем? - PullRequest
8 голосов
/ 04 декабря 2011

Я пытаюсь создать две агрегации CSS - одну для общедоступного сайта и одну для прикладной части сайта.

Если сделать выходной файл ${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 не удастся. Я просто не понимаю, почему процесс сборки действительно успешен при наличии допустимых каталогов, но он не создает файлы в этих каталогах. Нет смысла!

Я подумал, что это может быть проблема безопасности файловой системы, но это не так.

Я искренне удивлен, почему это не работает.

Пожалуйста, помогите.

1 Ответ

12 голосов
/ 20 января 2012

У меня была похожая проблема, и я решил ее, настроив inputDir так, чтобы он указывал на корневой каталог моей структуры js. По умолчанию плагин принимает в качестве основы родительский каталог вашего выходного файла и включает в себя поведение относительно него (если не абсолютные пути).

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

Надеюсь, это поможет:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...