code: public void execute() throws MojoExecutionException {
          
          if (skip) {
              getLog().info("Skipping ceylon:sdk-download");
              return;
          }
          
          if (System.getProperty("ceylon.repo") != null) {
              throw new MojoExecutionException("Ceylon system repo (ceylon.repo system property) is already set to: "
                  + System.getProperty("ceylon.repo"));
          }
          
  
              
          if ("{user.home}/.ceylon".equals(downloadTo)) { // replace placeholder
              downloadTo = System.getProperty("user.home") 
                 + File.separator + ".ceylon";
              getLog().debug("downloadTo property not set, using default");
          }
          
          sysRepo = downloadSdk(downloadTo);
          
          if (sysRepo == null || !sysRepo.exists()) {
              String message = "Download specified but target directory exists or could not be created";
              getLog().info(message);
          } else {
              System.setProperty("ceylon.repo", sysRepo.getAbsolutePath());
              getLog().debug("Downloaded Ceylon SDK and set Ceylon system repo to: " + System.getProperty("ceylon.repo"));
          }  
      }
docs: Execute Mojo.
  @see org.apache.maven.plugin.Mojo#execute()
  @throws MojoExecutionException In case SDK is not found and download is not true, or other error