code: public void execute() throws MojoExecutionException {
          try {
              repositoryPath = findRepoPath(this.ceylonRepository);
              ArtifactRepositoryLayout layout = new CeylonRepoLayout();
              getLog().debug("Layout: " + layout.getClass());
  
              localRepository =
                  new DefaultArtifactRepository(ceylonRepository, 
                      repositoryPath.toURI().toURL().toString(), layout);
              getLog().debug("Repository: " + localRepository);
          } catch (MalformedURLException e) {
              throw new MojoExecutionException("MalformedURLException: " + e.getMessage(), e);
          }
          
          if (project.getFile() != null) {
              readModel(project.getFile());
          }
          
          if (skip) {
              getLog().info("Skipping artifact installation");
              return;
          }
  
          if (!installAtEnd) {
              installProject(project);
          } else {
              MavenProject lastProject = reactorProjects.get(reactorProjects.size() - 1);
              if (lastProject.equals(project)) {
                  for (MavenProject reactorProject : reactorProjects) {
                      installProject(reactorProject);
                  }
              } else {
                  getLog().info("Installing " + project.getGroupId() + ":" + project.getArtifactId() + ":"
                                     + project.getVersion() + " at end");
              }
          }
      }
docs: MoJo execute.
  @see org.apache.maven.plugin.Mojo#execute()
  @throws MojoExecutionException In case of an error