diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..7f69afd3afc7416f82c934795d8386cce4e5ed5e
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,16 @@
+# Eclipse
+.classpath
+.project
+.settings/
+ 
+# Intellij
+.idea/
+*.iml
+*.iws
+ 
+# Mac
+.DS_Store
+ 
+# Maven
+log/
+target/
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000000000000000000000000000000000000..9a32b0cd5314d702066d2e43ef2bac4795a8c7dd
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,39 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<groupId>cz.vsb.fei.java2</groupId>
+	<artifactId>java21-quickstart</artifactId>
+	<version>1.0.1</version>
+	<packaging>maven-archetype</packaging>
+
+	<build>
+		<extensions>
+			<extension>
+				<groupId>org.apache.maven.archetype</groupId>
+				<artifactId>archetype-packaging</artifactId>
+				<version>3.1.1</version>
+			</extension>
+		</extensions>
+	</build>
+
+	<repositories>
+		<repository>
+			<id>vsb-archetypes</id>
+			<name>vsb-archetypes</name>
+			<url>https://artifactory.cs.vsb.cz/archetypes</url>
+		</repository>
+	</repositories>
+	
+	<distributionManagement>
+		<snapshotRepository>
+			<id>vsb-archetypes-releases</id>
+			<url>https://artifactory.cs.vsb.cz/repository/archetype-snapshots/</url>
+		</snapshotRepository>
+		<repository>
+			<id>vsb-archetypes-snapshots</id>
+			<url>https://artifactory.cs.vsb.cz/repository/archetype-releases/</url>
+		</repository>
+	</distributionManagement>
+
+</project>
diff --git a/src/main/resources/META-INF/maven/archetype-metadata.xml b/src/main/resources/META-INF/maven/archetype-metadata.xml
new file mode 100644
index 0000000000000000000000000000000000000000..aa107ebe1309bb4fc169a4b3cd0a03a2fecf64cf
--- /dev/null
+++ b/src/main/resources/META-INF/maven/archetype-metadata.xml
@@ -0,0 +1,37 @@
+<archetype-descriptor
+	xmlns="https://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.1.0"
+	xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="https://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.1.0 https://maven.apache.org/xsd/archetype-descriptor-1.1.0.xsd"
+	name="javafx-quickstart">
+	<fileSets>
+		<fileSet filtered="true" packaged="true">
+			<excludes>
+				<exclude>module-info.java</exclude>
+			</excludes>
+			<directory>src/main/java</directory>
+		</fileSet>
+		<fileSet filtered="true">
+			<includes>
+				<include>module-info.java</include>
+			</includes>
+			<directory>src/main/java</directory>
+		</fileSet>
+
+		<fileSet filtered="true" packaged="true">
+			<excludes>
+				<exclude>log4j2.xml</exclude>
+			</excludes>
+			<directory>src/main/resources</directory>
+		</fileSet>
+		<fileSet filtered="true" packaged="false">
+			<directory>src/main/resources</directory>
+			<includes>
+				<include>log4j2.xml</include>
+			</includes>
+		</fileSet>
+
+		<fileSet  filtered="true" packaged="true">
+			<directory>src/test/java</directory>
+		</fileSet>
+	</fileSets>
+</archetype-descriptor>
\ No newline at end of file
diff --git a/src/main/resources/archetype-resources/.gitignore b/src/main/resources/archetype-resources/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..98b99a551e28559528e090cbfc676dcff9bd7def
--- /dev/null
+++ b/src/main/resources/archetype-resources/.gitignore
@@ -0,0 +1,16 @@
+# Eclipse
+.classpath
+.project
+.settings/
+ 
+# Intellij
+.idea/
+*.iml
+*.iws
+ 
+# Mac
+.DS_Store
+ 
+# Maven
+log/
+target/
diff --git a/src/main/resources/archetype-resources/pom.xml b/src/main/resources/archetype-resources/pom.xml
new file mode 100644
index 0000000000000000000000000000000000000000..b3537e35ac6ce4a8fd9fbbce9ac71e04dba83b6d
--- /dev/null
+++ b/src/main/resources/archetype-resources/pom.xml
@@ -0,0 +1,65 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<groupId>${groupId}</groupId>
+	<artifactId>${artifactId}</artifactId>
+	<version>${version}</version>
+
+	<name>${artifactId}</name>
+
+	<packaging>jar</packaging>
+
+	<properties>
+		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+		<maven.compiler.release>21</maven.compiler.release>
+		<JUnit.version>5.10.1</JUnit.version>
+		<log4j.version>2.22.1</log4j.version>
+		<lombok.version>1.18.30</lombok.version>
+	</properties>
+	<dependencyManagement>
+		<dependencies>
+			<dependency>
+				<groupId>org.junit</groupId>
+				<artifactId>junit-bom</artifactId>
+				<version>${JUnit.version}</version>
+				<type>pom</type>
+				<scope>import</scope>
+			</dependency>
+		</dependencies>
+	</dependencyManagement>
+
+	<dependencies>
+		<dependency>
+			<groupId>org.junit.jupiter</groupId>
+			<artifactId>junit-jupiter</artifactId>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.logging.log4j</groupId>
+			<artifactId>log4j-core</artifactId>
+			<version>${log4j.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.logging.log4j</groupId>
+			<artifactId>log4j-api</artifactId>
+			<version>${log4j.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.projectlombok</groupId>
+			<artifactId>lombok</artifactId>
+			<version>${lombok.version}</version>
+			<scope>provided</scope>
+		</dependency>
+	</dependencies>
+
+	<build>
+		<plugins>
+			<plugin>
+				<artifactId>maven-surefire-plugin</artifactId>
+				<version>3.2.1</version>
+			</plugin>
+		</plugins>
+	</build>
+
+</project>
diff --git a/src/main/resources/archetype-resources/src/main/java/App.java b/src/main/resources/archetype-resources/src/main/java/App.java
new file mode 100644
index 0000000000000000000000000000000000000000..ad88bd4d0f25044bea84e1164ad9273eda4115db
--- /dev/null
+++ b/src/main/resources/archetype-resources/src/main/java/App.java
@@ -0,0 +1,16 @@
+package $package;
+
+import lombok.extern.log4j.Log4j2;
+
+/**
+ *  Class <b>App</b> - main class
+ *  @author     Java I
+ */
+@Log4j2
+public class App {
+
+	public static void main(String[] args) {
+		log.info("Launching Java application.");
+	}
+	
+}
\ No newline at end of file
diff --git a/src/main/resources/archetype-resources/src/main/java/module-info.java b/src/main/resources/archetype-resources/src/main/java/module-info.java
new file mode 100644
index 0000000000000000000000000000000000000000..59d078c89a0b0bd4cb4cebb06d6cc49c59955509
--- /dev/null
+++ b/src/main/resources/archetype-resources/src/main/java/module-info.java
@@ -0,0 +1,4 @@
+module $package {
+	requires lombok;
+	requires org.apache.logging.log4j;
+}
\ No newline at end of file
diff --git a/src/main/resources/archetype-resources/src/main/resources/log4j2.xml b/src/main/resources/archetype-resources/src/main/resources/log4j2.xml
new file mode 100644
index 0000000000000000000000000000000000000000..acb3514078f6fb73f4f09ffd7a172b47f184e961
--- /dev/null
+++ b/src/main/resources/archetype-resources/src/main/resources/log4j2.xml
@@ -0,0 +1,13 @@
+<Configuration>
+	<Appenders>
+		<Console name="Console">
+			<PatternLayout
+				pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
+		</Console>
+	</Appenders>
+	<Loggers>
+		<Root level="info">
+			<AppenderRef ref="Console"></AppenderRef>
+		</Root>
+	</Loggers>
+</Configuration>
diff --git a/src/main/resources/archetype-resources/src/test/java/AppTest.java b/src/main/resources/archetype-resources/src/test/java/AppTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..f5b64156a136b6fbe9f1a194d2f233b1c981d3c2
--- /dev/null
+++ b/src/main/resources/archetype-resources/src/test/java/AppTest.java
@@ -0,0 +1,19 @@
+package $package;
+
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+import org.junit.jupiter.api.Test;
+
+/**
+ * Unit test for simple App.
+ */
+class AppTest {
+
+	/**
+	 * Rigorous Test :-)
+	 */
+	@Test
+	void shouldAnswerWithTrue() {
+		assertTrue(true);
+	}
+}