Uploaded image for project: 'ZK'
  1. ZK
  2. ZK-4873

Theme build process fails in windows due to escaping

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Normal Normal
    • 9.6.0
    • 9.6.0
    • None
    • Security Level: Jimmy
    • None
    • windows (tested on windows 10, up to date 2021/04/22)

      Steps to Reproduce

      Clone a theme project (ex atlantic), but also reproduced in theme template

      https://github.com/zkoss/atlantic

      Run mvn clean compile

      Current Result

      build fails with:

      Executing zkless-engine with params:
      {
        _: [ 'true}' ],
        source: 'D:\\Repositories\\zkgit\\atlantic/src/archive/web',
        output: 'D:\\Repositories\\zkgit\\atlantic\\target\\classes/web/atlantic',
        compress: true,
      undefined:1
        'less-opts': '{javascriptEnabled:',
      {javascriptEnabled:
        imports: [],
       ^
      
        extension: '.css.dsp',
        watch: false,
      SyntaxError: Unexpected token j in JSON at position 1
        'live-reload-port': 50000
      }
          at JSON.parse (<anonymous>)
          at Object.<anonymous> (C:\Users\Matt\AppData\Roaming\npm\node_modules\zkless-engine\bin\zkless-cli.js:37:14)
          at Module._compile (internal/modules/cjs/loader.js:955:30)
          at Object.Module._extensions..js (internal/modules/cjs/loader.js:991:10)
          at Module.load (internal/modules/cjs/loader.js:811:32)
          at Function.Module._load (internal/modules/cjs/loader.js:723:14)
          at Function.Module.runMain (internal/modules/cjs/loader.js:1043:10)
          at internal/main/run_main_module.js:17:11
      [ERROR] Command execution failed.
      org.apache.commons.exec.ExecuteException: Process exited with an error: 1 (Exit value: 1)
          at org.apache.commons.exec.DefaultExecutor.executeInternal (DefaultExecutor.java:404)
          at org.apache.commons.exec.DefaultExecutor.execute (DefaultExecutor.java:166)
          at org.codehaus.mojo.exec.ExecMojo.executeCommandLine (ExecMojo.java:804)
          at org.codehaus.mojo.exec.ExecMojo.executeCommandLine (ExecMojo.java:751)
          at org.codehaus.mojo.exec.ExecMojo.execute (ExecMojo.java:313)
          at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
          at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
          at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
          at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
          at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
          at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
          at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
          at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
          at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
          at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
          at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
          at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957)
          at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)
          at org.apache.maven.cli.MavenCli.main (MavenCli.java:193)
          at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
          at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
          at java.lang.reflect.Method.invoke (Method.java:498)
          at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
          at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
          at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
          at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
      

      Expected Result

       build succeed

      Debug Information

       caused by escaping not working in windows.

      https://github.com/zkoss/atlantic/blob/master/pom.xml#L132

      <argument>{"javascriptEnabled": true}</argument>

      Workaround

      ON WINDOWS: add additional escaped backslash to escape the double quotes

      <argument>{\\\"javascriptEnabled\\\":true}</argument>

            DevChu DevChu
            MDuchemin MDuchemin
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: