CreateProcess error=206, The filename or extension is too long"的一個解決方案,filenametoolong

來源:互聯網
上載者:User

CreateProcess error=206, The filename or extension is too long"的一個解決方案,filenametoolong
在實際項目中我使用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參數

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.