我有Alfresco Community 5.2和一个自定义JS库,可以将它们捆绑在一个amp文件中,因为我需要在share内部使用该库。
[我试图将它放在shareamp\web\js\
下,如图所示,但是由于YUICompressor缩小错误,我无法编译项目,可能是JS库太新了,并且与YUICompressor不兼容。
错误如下
[ERROR] Failed to execute goal net.alchim31.maven:yuicompressor-maven-plugin:1.5.1:compress (compress-js) on project MyProjectShare: Execution compress-js of goal net.alchim31.maven:yuicompressor-maven-plugin:1.5.1:compress failed: Compilation produced 3 syntax errors. -> [Help 1]
我也试图将其放在META-INF\resources
文件夹下,但不起作用。我可以编译该项目并创建.amp文件,但是该库在amp中不存在,就像它已被忽略一样。
显然,我无法更改或删除该库,也无法使其与诸如babel.js之类的外部工具兼容于ES5。
放置JS库的正确位置在哪里?是否可以禁用yuicompressor进行生产? (这是正确的吗?),我可以配置maven将该库放回<build>
部分的放大器中(以及它是否正确吗?)
感谢所有人。
PS。我也想知道我面临的这个问题是否是由于对露天/股票扩展使用错误的方法引起的,如果是,那么最佳实践应该如何。
我已经能够解决在maven安装过程中添加资源的问题,即创建放大器。
我将JS库放置在WEB-INF
文件夹下,如问题中所述,因此,露天音乐基本上在编译时会忽略它们,并且它们不会被YUICompressor压缩/缩小。在maven安装过程的验证阶段,这些文件将被复制到正确的js路径内。
似乎都可以正常工作。
我配置了maven-resources-plugin,这是代码
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>copy-resources</id>
<!-- here the phase you need -->
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/target/amp/web/BNextScanShare/js/DynamicWebTWAIN/</outputDirectory>
<resources>
<resource>
<directory>/src/main/resources/META-INF/resources/DynamicWebTWAIN</directory>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>