我想将多个js文件聚合/组合成一个,而不使用maven插件缩小或混淆它们。 我已经使用yui插件将一些js文件混淆为一个:
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>yuicompressor-maven-plugin</artifactId>
<version>1.2</version>
<executions>
<execution>
<id>obfuscate</id>
<phase>process-resources</phase>
<goals>
<goal>compress</goal>
</goals>
<configuration>
<nosuffix>true</nosuffix>
<linebreakpos>-1</linebreakpos>
<aggregations>
<aggregation>
<removeIncluded>true</removeIncluded>
<insertNewLine>false</insertNewLine>
<output>${project.build.directory}/${project.build.finalName}/all.js</output>
<includes>
<include>**/*.js</include>
</includes>
<excludes>
<exclude>**/include/*.js</exclude>
</excludes>
</aggregation>
</aggregations>
</configuration>
</execution>
</executions>
</plugin>
现在我希望在文件allForDev.js 中聚合相同的js文件而不进行缩小或混淆。目标是有一个文件用于开发,一个用于生产。在开发人员工具中调试时查看整个脚本会很有用。如果我找不到这样做的方法,我将被迫放置很多脚本标签来加载所有这些scirpts(这不是世界末日:)但我想以更干净的方式做到这一点)。
我可以看到汇编插件具有以下格式:
zip tar.gz tar.bz2 jar dir war和任何其他格式的那个 ArchiveManager已配置为
有没有办法可以使用汇编maven插件来做到这一点?我看到的有很多例子可以创建拉链罐子和战争,但没有一个可以匹配我想要的去做。或者我错过了什么?
我可以使用其他插件吗?
作为旁注,我尝试使用yui插件的第二次执行来创建第二个js文件,但我没有运气创建2个文件。我也试过提供2个插件,再没有运气。我认为这也不可能。
干杯,
霸
答案 0 :(得分:0)
答案在于wro4j库。有关更精确的设置,请参阅:
Javascript and CSS files combining in Maven build WITHOUT compression, minification etc
答案 1 :(得分:0)
如果你不想像我一样麻烦wro4j插件(来自@ despot&#39;答案)并希望快速原型化,你可以实际使用具有类似配置的旧maven-antrun-plugin
:
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<phase>generate-sources</phase>
<configuration>
<target>
<property name="root" location=""/>
<property name="jsRoot" location="${root}/src/main/webapp/js"/>
<property name="jsAggregated" location="${root}/src/main/webapp/all.js"/>
<echo message="Aggregating js files from ${jsRoot} into ${jsAggregated}"/>
<concat destfile="${jsAggregated}" encoding="UTF-8" >
<fileset dir="${jsRoot}" includes="*.*"/>
<filelist dir="${jsRoot}/.." files="client.js"/>
</concat>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
这个连接文件夹<module>/src/main/webapp/js/*.*
中的所有文件(但不包含子文件夹中的文件)。然后它会在末尾添加client.js
以确保所有内容都可用(AFAIK <fileset>
具有未定义的顺序)。
生成的连接文件随后位于<module>/src/main/webapp/all.js
。
我知道maven阶段,路径和其他东西可能不是&#34;正确&#34; - 这只是一个快速示例,显示了替代的非侵入性方法。