Компрессор yui: отсутствует требуемый класс: org.mozilla.javascript.ErrorReporter
Я не могу использовать плагин yui-compressor maven в своем веб-приложении. Когда я запускаю Maven, я получаю следующую ошибку
[INFO] Внутренняя ошибка в менеджере плагинов, выполняющем цель 'net.sf.alchim:yuicompressor-maven-plugin:0.7.1:compress': Невозможно загрузить mojo 'net.sf.alchim: yuicompressor-Maven-плагин: 0.7.1: компресс в плагине 'net.sf.alchim:yuicompressor-maven-plugin'. Отсутствует необходимый класс: org.mozilla.javascript.ErrorReporter
Позже я обнаружил, что плагин rhino js содержит этот класс org.mozilla.javascript.ErrorReporter. Поэтому я включил этот плагин в тег зависимостей, но все равно получаю ту же ошибку.
Кто-нибудь сталкивался с такой ошибкой.
-> обновить основной вопрос, чтобы добавить информацию о плагине pom
<plugin>
<groupId>net.sf.alchim</groupId>
<artifactId>yuicompressor-maven-plugin</artifactId>
<version>0.7.1</version>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>jslint</goal>
<goal>compress</goal>
</goals>
</execution>
</executions>
<configuration>
<failOnWarning>true</failOnWarning>
<nosuffix>true</nosuffix>
<aggregations>
<aggregation>
<!-- remove files after aggregation (default: false) -->
<removeIncluded>false</removeIncluded>
<!-- insert new line after each concatenation (default: false) -->
<insertNewLine>false</insertNewLine>
<output>${project.basedir}/${webcontent.dir}/js/compressedAll.js</output>
<!-- files to include, path relative to output's directory or absolute path-->
<!--inputDir>base directory for non absolute includes, default to parent dir of output</inputDir-->
<includes>
<include>**/autocomplete.js</include>
<include>**/calendar.js</include>
<include>**/dialogs.js</include>
<include>**/download.js</include>
<include>**/folding.js</include>
<include>**/jquery-1.4.2.min.js</include>
<include>**/jquery.bgiframe.min.js</include>
<include>**/jquery.loadmask.js</include>
<include>**/jquery.printelement-1.1.js</include>
<include>**/jquery.tablesorter.mod.js</include>
<include>**/jquery.tablesorter.pager.js</include>
<include>**/jquery.validate.js</include>
<include>**/jquery-ui-1.8.custom.min.js</include>
<include>**/languageDropdown.js</include>
<include>**/messages.js</include>
<include>**/print.js</include>
<include>**/tables.js</include>
<include>**/tabs.js</include>
<include>**/uwTooltip.js</include>
</includes>
<!-- files to exclude, path relative to output's directory-->
</aggregation>
</aggregations>
</configuration>
<dependencies>
<dependency>
<groupId>rhino</groupId>
<artifactId>js</artifactId>
<scope>compile</scope>
<version>1.6R5</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<version>2.0.7</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-project</artifactId>
<version>2.0.7</version>
<scope>provided</scope>
</dependency><dependency>
<groupId>net.sf.retrotranslator</groupId>
<artifactId>retrotranslator-runtime</artifactId>
<version>1.2.9</version>
<scope>runtime</scope>
</dependency>
</dependencies>
</plugin>
3 ответа
Смотрите тему Компрессор Yui StringIndexOutOfBoundsException на jboss
Единственный способ использовать yuicompressor в веб-приложении - вручную объединить его с зависимостью от Rhino. В противном случае для запуска приложения потребуется указать требуемую последовательность jar-файлов в загрузочной последовательности загрузчика классов (youcompressor должен идти перед носорогом).
Я боролся с отсутствующим классом ErrorReporter. Я решил эту проблему, создав JAR-файл с зависимостями, которые затем развернул для использования в своем веб-приложении.
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>attached</goal>
</goals>
</execution>
</executions>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
Как только я это сделал, все заработало. В моем банке я мог видеть, что там был org.mozilla.javascript.ErrorReporter.class, и Maven затем компилировал для меня.
Не могли бы вы попробовать последнюю версию (1.1)?
Версия 0.7.1, похоже, даже не находится в официальном репозитории. Может быть, проблема разрешения зависимости?