【发布时间】:2015-07-22 08:07:36
【问题描述】:
我正在处理一个遗留项目,它是一个 Vaadin 组件,它使用 Maven YUI 插件来缩小和连接 javascript 文件。有40个js文件。
YUI 插件可以正常工作,将 40 个 js 文件缩小并将它们连接到一个文件中(然后在 Vaadin 中使用 @javascript 引用)。
由于新功能的缩小开发很痛苦,但我无法删除 YUI 插件,因为那时我需要为所有 40 个 js 文件添加 @javascript 注释。
有没有办法让 YUI 聚合但不缩小。我已阅读文档并尝试更改目标(即仅更改为 jslint),但如果我不使用 compress 目标,我似乎无法聚合。
我错过了什么吗?
这是我的 YUI 配置:
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>yuicompressor-maven-plugin</artifactId>
<version>1.5.1</version>
<executions>
<execution>
<id>jslint</id>
<goals>
<goal>jslint</goal>
</goals>
<configuration>
<includes>
<include>**/*.js</include>
</includes>
<excludes>
<exclude>**/VAADIN/js/*.js</exclude>
<exclude>**/depends/*.js</exclude>
</excludes>
</configuration>
</execution>
<execution>
<id>minify</id>
<goals>
<goal>compress</goal>
</goals>
<configuration>
<nosuffix>true</nosuffix>
<force>true</force>
<excludeWarSourceDirectory>true</excludeWarSourceDirectory>
<linebreakpos>-1</linebreakpos>
<aggregations>
<aggregation>
<inputDir>target/classes/[path]/components</inputDir>
<removeIncluded>true</removeIncluded>
<output>${project.build.directory}/classes/[path].js</output>
<includes>
<include>**/*.js</include>
<include>**/Copyright.txt</include>
</includes>
<excludes>
<exclude>**/depends/d3_3.4.6.js</exclude>
</excludes>
</aggregation>
</aggregations>
<includes>
<include>**/*.js</include>
<include>**/[project.name].css</include>
</includes>
<excludes>
<exclude>**/depends/*.js</exclude>
</excludes>
</configuration>
</execution>
</executions>
</plugin>
N.b.我也尝试过上面的 jslint 目标中的聚合配置,但没有任何乐趣。
必须有一种方法可以停止压缩(我知道 YUI 是一个压缩插件,但它还有其他功能(例如 lint),所以我假设你可以关闭压缩)。此外,Vaadin 的 @javascript 注释采用逗号分隔的 js 文件列表。我觉得添加 40 会太多,但也许@javascript 有办法获取目录。 (虽然文档没有提到这一点)
【问题讨论】:
标签: java maven vaadin yui vaadin7