在实际项目中我使用antrun 和 closure-compiler压缩JS项目。然后我就使用如下代码:
首先加入依赖。
<dependency>
<groupId>com.google.javascript</groupId>
<artifactId>closure-compiler</artifactId>
<version>v20160315</version>
</dependency>
pom.xml文件加入插件代码。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<property name="closure.compiler.class.name"
value="com.google.javascript.jscomp.CommandLineRunner" />
<echo message="Generate main.min.js" />
<java classname="${closure.compiler.class.name}"
classpathref="maven.compile.classpath" fork="true" failonerror="true">
<arg value="--js"/>
<arg value="${basedir}/src/main/webapp/js/main.js"/>
<arg value="--js_output_file"/>
<arg value="${basedir}/src/main/webapp/js/main.min.js" />
<arg value="--compilation_level"/>
<arg value="SIMPLE_OPTIMIZATIONS"/>
</java>
</target>
</configuration>
</execution>
</executions>
</plugin>

然后运行发现报错。CreateProcess error=206, ÎļþÃû»ò)չÃû 然后后面有一堆乱码,然后经过stackoverflow查找之后 发现后面乱码大概是“CreateProcess error=206, The filename or extension is too long

在Windows下命令行支持的字符串长度是有限制的,在计算机上运行 Microsoft Windows XP 或更高版本,可以在命令提示符下使用的字符串的最大的长度 8191 个字符。 在运行 Microsoft Windows 2000 或 Windows NT 4.0 的计算机上, 将最大长度可以在命令提示符下使用的字符串的为 2047 个字符。

我也弄不明白为啥我的antrun命令过长,上面的arg参数那么少。然后我使用 mvn package –X 打印详细信息。发现有个classpathref=”maven.compile.classpath”回去打印所有lib所有jar包来运行命令。

而不是指定closure-complie这个jar包运行。

在maven中知道可以直接指定maven 依赖的closure-complie.jar包,参照如下地址:

http://maven.apache.org/plugins/maven-antrun-plugin/examples/classpaths.html

所以修改上面pom.xml代码:

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<property name="closure.compiler.class.name"value="com.google.javascript.jscomp.CommandLineRunner" />
<echo message="Generate main.min.js" />
<path id="maven.lib.dep" path="${com.google.javascript:closure-compiler:jar}"/>
<java classname="${closure.compiler.class.name}"
classpathref="maven.lib.dep" fork="true" failonerror="true">
<arg value="--js"/>
<arg value="${basedir}/src/main/webapp/js/main.js"/>
<arg value="--js_output_file"/>
<arg value="${basedir}/src/main/webapp/js/main.min.js" />
<arg value="--compilation_level"/>
<arg value="SIMPLE_OPTIMIZATIONS"/>
</java>
</target>
</configuration>
</execution>
</executions>
</plugin>

指定classpathref参数

CreateProcess error=206, The filename or extension is too long"的一个解决方案的更多相关文章

  1. 修复Gradle CreateProcess error=206

    插件地址:https://plugins.gradle.org/plugin/ua.eshepelyuk.ManifestClasspath 修复Window系统中Gradle 路径太长问题, Fix ...

  2. windows下eclipse跑junit报错:CreateProcess error=206

    from:http://isuifengfei.iteye.com/blog/1684262 windows下,eclipse中运行junit出现错误提示: Exception occurred ex ...

  3. 关于eclipse运行TestNG出现: CreateProcess error=206, ÎļþÃû»ò)չÃû的解决办法

    最近玩物流宝的一个项目,需要测试下3个系统打通的接口. 不测不要紧,一测吓一跳.我的乖乖:几百个bean被加进来.就凭我这肉机,内存不爆才怪. 于是换一套方案,用了另一个测试接口. 但是这个测试接口, ...

  4. "CreateProcess error=206, 文件名或扩展名太长。",用gradle构建项目创建mapper文件时提示这个错误,是Windows Gradle长类路径问题,官方已经修复

    用gradle构建项目mapper文件时,提示这个错误,这个是Windows Gradle长类路径问题, gradle官方已经解决了这个问题. 官网给出的解决方法地址:https://plugins. ...

  5. CreateProcess error=206, 文件名或扩展名太长。

    改:

  6. Jenkins报错Caused: java.io.IOException: Cannot run program "sh" (in directory "D:\Jenkins\Jenkins_home\workspace\jmeter_test"): CreateProcess error=2, 系统找不到指定的文件。

    想在本地执行我的python文件,我本地搭建了一个Jenkins,使用了execute shell来运行我的脚本,发现报错 [jmeter_test] $ sh -xe D:\tomcat\apach ...

  7. Android Studio Error:CreateProcess error=216

    Error:CreateProcess error=216, This version of %1 is not compatible with the version of Windows you' ...

  8. Cannot load supported formats: Cannot run program "svn": CreateProcess error=2

    svn CreateProcess error=2, 系统找不到指定的文件 IntelliJ IDEA 13.1.2安装后,SVN checkout时候会出现如下错误: Cannot load sup ...

  9. Github上LeakCanary编译报错CreateProcess error=2的解决方法

    现象说明: 从github上拉下LeakCanary编译时报错 CreateProcess error=2, ϵͳÕҲ»µ½ָ¶ 原因分析: 该现象是由于Windows中Gradle调用命令未加cmd ...

随机推荐

  1. git常见操作--忽略文件以及常用命令【转】

    转自:http://www.cnblogs.com/elfsundae/archive/2011/07/17/2099698.html References: http://stackoverflow ...

  2. flex 4 布局样式

    Flex 4 样式与布局 第一篇 Flex 4 与自定义布局(Layout) Flex 4/Spark组件架构的新功能之一是可以定制一个容器的布局而不必改变容器本身.您需要做的就是定义一个自定义布局. ...

  3. IP地址的定义和含义

    IP的定义 ip 是32位无符号整数,最小,最大分别是- 0.0.0.0 - 255.255.255.255 具体来说,由一个ip由 Net-ID+Host-ID 两部分组成,Net-ID 相同,那么 ...

  4. 超大整数运算算法——为RSA加密算法提供运算工具

    /* program: Large integer operations * Made by:  Daiyyr * date:  2013/07/09 * This software is licen ...

  5. OpenMp之sections用法

    section语句是用在sections语句里用来将sections语句里的代码划分成几个不同的段 #pragma omp [parallel] sections [子句] {    #pragma ...

  6. 利用SOLR搭建企业搜索平台 之——MultiCore

    Solr Multicore 是 solr 1.3 的新特性.其目是一个solr实例,可以有多个搜索应用. 下面着手来将solr给出的一个example跑出来.这篇文章是基于<利用SOLR搭建企 ...

  7. AOJ 0525 - Osenbei

    http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=50785 翻译:http://blog.csdn.net/acm_10000h ...

  8. MongoDB 学习笔记(二) 高级查询

    1.条件运算符 2.$all 匹配所有 3.$exists 判断字段是否存在 4.NUll 值处理 5.$mod 取模处理 6.$ne 不等于 7. $in 包含,与sql用法相同 8. $nin 不 ...

  9. phpStorm中ftp的配置与使用

    小结:很方便,支持ftp功能和比较. 扩展,可以查看远程文件和日期

  10. Redis 网络通信及连接机制学习

    看了这篇文章 http://blog.nosqlfan.com/html/4153.html 本文所述内容基于 Redis2.6 及以上版本. 注:在客户端通过 info 命令可以查看服务器版本信息, ...