Class CreateProjectFromArchetypeMojo

java.lang.Object
org.apache.maven.plugin.AbstractMojo
org.apache.maven.archetype.mojos.CreateProjectFromArchetypeMojo
All Implemented Interfaces:
org.apache.maven.plugin.ContextEnabled, org.apache.maven.plugin.Mojo

@Mojo(name="generate", requiresProject=false) @Execute(phase=GENERATE_SOURCES) public class CreateProjectFromArchetypeMojo extends org.apache.maven.plugin.AbstractMojo implements org.apache.maven.plugin.ContextEnabled
Generates a new project from an archetype, or updates the actual project if using a partial archetype. If the project is fully generated, it is generated in a directory corresponding to its artifactId. If the project is updated with a partial archetype, it is done in the current directory.
  • Field Details

    • manager

      @Component private ArchetypeManager manager
    • selector

      @Component private ArchetypeSelector selector
    • configurator

      @Component private ArchetypeGenerationConfigurator configurator
    • invoker

      @Component private org.apache.maven.shared.invoker.Invoker invoker
    • archetypeArtifactId

      @Parameter(property="archetypeArtifactId") private String archetypeArtifactId
      The archetype's artifactId.
    • archetypeGroupId

      @Parameter(property="archetypeGroupId") private String archetypeGroupId
      The archetype's groupId.
    • archetypeVersion

      @Parameter(property="archetypeVersion") private String archetypeVersion
      The archetype's version.
    • archetypeCatalog

      @Parameter(property="archetypeCatalog", defaultValue="remote,local") private String archetypeCatalog
      The archetype catalogs to use to build a list and let the user choose from. It is a comma separated list of catalogs. Catalogs use the following schemes:
      • 'local' which is the shortcut to the local repository
      • 'remote' which is the shortcut for Maven Central repository or its mirror
      • 'internal' which is an internal catalog

      If you want the catalogs to come from a different repository, please add the following to your settings.xml

         <repository>
           <id>archetype</id>
           <url>https://repository.domain.com/path/to/repo/</url>
         </repository>
         
         <!-- in case of a repository with authentication -->
         <server>
           <id>archetype</id>
           <username>user.name</username>
           <password>s3cr3t</password>
         </server>
       
      If Maven Central repository catalog file is empty, internal catalog is used instead.
    • askForDefaultPropertyValues

      @Parameter(property="askForDefaultPropertyValues", defaultValue="false", required=true) private Boolean askForDefaultPropertyValues
      If set to true will ask for values also for properties having defaults in the first place. Only has an effect if interactiveMode is used.
    • localRepository

      @Parameter(defaultValue="${localRepository}", readonly=true, required=true) private org.apache.maven.artifact.repository.ArtifactRepository localRepository
      Local Maven repository.
    • remoteArtifactRepositories

      @Parameter(defaultValue="${project.remoteArtifactRepositories}", readonly=true, required=true) private List<org.apache.maven.artifact.repository.ArtifactRepository> remoteArtifactRepositories
      List of remote repositories used by the resolver.
    • interactiveMode

      @Parameter(property="interactiveMode", defaultValue="${settings.interactiveMode}", required=true) private Boolean interactiveMode
      User settings used to check the interactiveMode.
    • outputDirectory

      @Parameter(defaultValue="${basedir}", property="outputDirectory") private File outputDirectory
    • session

      @Parameter(defaultValue="${session}", readonly=true) private org.apache.maven.execution.MavenSession session
    • goals

      @Parameter(property="goals") private String goals
      Goals to immediately run on the project created from the archetype.
    • filter

      @Parameter(property="filter") private String filter
      Applying some filter on displayed archetypes list: format is artifactId or groupId:artifactId.
      • org.apache: -> displays all archetypes which contain org.apache in groupId
      • :jee or jee -> displays all archetypes which contain jee in artifactId
      • org.apache:jee -> displays all archetypes which contain org.apache in groupId AND jee in artifactId
      Since:
      2.1
  • Constructor Details

    • CreateProjectFromArchetypeMojo

      public CreateProjectFromArchetypeMojo()
  • Method Details

    • execute

      public void execute() throws org.apache.maven.plugin.MojoExecutionException, org.apache.maven.plugin.MojoFailureException
      Specified by:
      execute in interface org.apache.maven.plugin.Mojo
      Throws:
      org.apache.maven.plugin.MojoExecutionException
      org.apache.maven.plugin.MojoFailureException
    • invokePostArchetypeGenerationGoals

      private void invokePostArchetypeGenerationGoals(String goals, String artifactId) throws org.apache.maven.plugin.MojoExecutionException, org.apache.maven.plugin.MojoFailureException
      Throws:
      org.apache.maven.plugin.MojoExecutionException
      org.apache.maven.plugin.MojoFailureException