Upgrade & Secure Your Future with DevOps, SRE, DevSecOps, MLOps!
We spend hours on Instagram and YouTube and waste money on coffee and fast food, but won’t spend 30 minutes a day learning skills to boost our careers.
Master in DevOps, SRE, DevSecOps & MLOps!
Learn from Guru Rajesh Kumar and double your salary in just one year.

What is Archetype?
In software development, Archetype refers to a project template or blueprint that defines a standard structure, configuration, and set of dependencies to bootstrap new projects quickly and consistently. Most commonly associated with Apache Maven, an archetype allows developers to generate a new project with a predefined structure—saving time, enforcing consistency, and embedding best practices.
The term Archetype is also used in other tooling ecosystems (e.g., Yeoman, Cookiecutter, Nx, or even internal tooling) to refer to similar project scaffolding mechanisms.
Apache Maven Archetype, for instance, is a tool to define and apply reusable templates for Maven projects. It allows teams to avoid setting up the same folder structure, POM configurations, and initial files over and over again.
Major Use Cases of Archetype
1. Bootstrapping New Projects
The primary use case of Archetype is to initialize new projects with a predefined directory structure, dependencies, and configuration files. It eliminates boilerplate work and ensures every new project starts with a strong, consistent foundation.
2. Enforcing Organizational Standards
Large organizations often enforce coding standards and project structures. Archetypes enable DevOps teams to encode these standards into templates so developers can generate new services, libraries, or modules that comply from day one.
3. Microservice Generation
In a microservices architecture, each service may share a similar layout (e.g., REST endpoints, configuration layers, testing frameworks). Archetypes can provide a one-click way to scaffold such services with all the necessary wiring.
4. Internal Developer Platforms (IDPs)
Developer platforms can use archetypes behind the scenes to offer self-service project generation portals. These archetypes can be customized for frontend, backend, mobile, or data pipelines.
5. Cross-Technology Onboarding
Whether you’re building Spring Boot APIs, React UIs, Python Flask apps, or Terraform configurations, archetypes help teams standardize starter kits across technology stacks.
How Archetype Works (with Architecture)
At its core, an Archetype system follows a simple flow:
- Definition Layer: A project template is defined using placeholder files, metadata descriptors (e.g.,
archetype-metadata.xml
in Maven), and default values. These define the project’s directory layout, default dependencies, and file templates. - Generator Engine: The Archetype engine reads the definition, takes input from the user (like group ID, artifact ID, package name), and generates a working project from the template.
- Customization Hooks: Some archetype systems allow scripting or hooks (e.g., Groovy in JHipster, or post-gen hooks in Cookiecutter) to add conditional logic or runtime customization.
Example: Maven Archetype Architecture
+------------------+ +------------------+ +------------------------+
| Archetype Plugin | ---> | Archetype Catalog| ---> | Archetype Templates |
+------------------+ +------------------+ +------------------------+
| | |
+---------------------------> Input Prompts ---------------> Project Generated
- Archetype Plugin: Runs via command-line or build tool integration.
- Catalog: Lists available archetypes (local or remote).
- Templates: Contain source folders, property tokens, and metadata.
Basic Workflow of Archetype
Whether you’re using Maven, Yeoman, or another tool, the workflow for using an archetype is generally as follows:
1. Catalog Discovery
Users browse or list available archetypes (official or internal). Tools often support online catalogs or local archetype registries.
2. User Input Collection
Once an archetype is selected, the generator collects inputs such as:
- Project name
- Group ID / Namespace
- Artifact ID
- Version
- Optional components
3. Project Generation
The generator engine substitutes placeholders with real values and copies the files into a target directory. Optional scripts may also run (e.g., initializing git, installing dependencies).
4. Post-Generation Edits
The developer begins working on the new project, modifying the generated files to add specific business logic.
Step-by-Step Getting Started Guide for Archetype (Using Maven as Example)
Step 1: Install Maven
If not already installed, download and install Apache Maven:
sudo apt install maven # Ubuntu
brew install maven # macOS
Step 2: Search for an Archetype
You can browse available archetypes using:
mvn archetype:generate
This command displays a list of templates, such as maven-archetype-quickstart
.
Step 3: Generate a Project
Use the interactive wizard or directly specify coordinates:
mvn archetype:generate -DgroupId=com.example \
-DartifactId=my-app \
-DarchetypeArtifactId=maven-archetype-quickstart \
-DinteractiveMode=false
This command creates a Java project with standard src/main/java
and src/test/java
structure, plus a ready-to-use pom.xml
.
Step 4: Explore Project Structure
The generated project typically includes:
my-app/
├── pom.xml
├── src/
│ ├── main/java/com/example/App.java
│ └── test/java/com/example/AppTest.java
Step 5: Build and Run the Project
cd my-app
mvn package
java -cp target/my-app-1.0-SNAPSHOT.jar com.example.App
Step 6: Create Your Own Archetype (Optional)
You can even create your own archetypes using:
mvn archetype:create-from-project