diff --git a/greeting-mojo/.gitignore b/greeting-mojo/.gitignore
new file mode 100644
index 0000000..33653da
--- /dev/null
+++ b/greeting-mojo/.gitignore
@@ -0,0 +1,31 @@
+
+# Files
+.classpath
+.externalToolBuilders
+.gradle
+.project
+.pydevproject
+.settings
+.sonar
+*~
+*.ipr
+*.iml
+*.iws
+*.swp
+*.DS_Store
+*.snap.debug
+dependency-reduced-pom.xml
+
+# Directories
+.idea/
+.run/
+.venv/
+_site/
+build/
+dist/
+docs/_build/
+gen-java/
+gen-javabean/
+gen-py/
+node_modules/
+target/
diff --git a/greeting-mojo/README.md b/greeting-mojo/README.md
new file mode 100644
index 0000000..c8159f7
--- /dev/null
+++ b/greeting-mojo/README.md
@@ -0,0 +1,20 @@
+# Overview
+This project shows how to create a Maven plugin.
+
+# Preparation
+Copy settings into user folder like this.
+
+```
+cp settings.xml ~/.m2/
+```
+
+# Execution
+Call the following instructions to execute the plugin on the command line.
+
+```
+mvn clean install
+mvn hello:sayhi
+```
+
+# Links
+[Example](https://maven.apache.org/guides/plugin/guide-java-plugin-development.html#Plugin_Naming_Convention_and_Apache_Maven_Trademark)
diff --git a/greeting-mojo/pom.xml b/greeting-mojo/pom.xml
new file mode 100644
index 0000000..2d7424d
--- /dev/null
+++ b/greeting-mojo/pom.xml
@@ -0,0 +1,53 @@
+
+
+
+ 4.0.0
+
+ de.swingbe.greeting.plugin
+ hello-maven-plugin
+ 1.0.0
+ maven-plugin
+
+ Sample Parameter-less Maven Plugin
+
+
+
+ 1.8
+ 1.8
+
+ UTF-8
+
+
+
+
+ org.apache.maven
+ maven-plugin-api
+ 3.0
+ provided
+
+
+
+
+ org.apache.maven.plugin-tools
+ maven-plugin-annotations
+ 3.4
+ provided
+
+
+
+
+
+
+ de.swingbe.greeting.plugin
+ hello-maven-plugin
+ 1.0.0
+
+ Welcome
+
+
+
+
+
+
diff --git a/greeting-mojo/settings.xml b/greeting-mojo/settings.xml
new file mode 100644
index 0000000..4e5dc13
--- /dev/null
+++ b/greeting-mojo/settings.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+ de.swingbe.greeting.plugin
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/greeting-mojo/src/main/java/de/swingbe/greeting/plugin/GreetingMojo.java b/greeting-mojo/src/main/java/de/swingbe/greeting/plugin/GreetingMojo.java
new file mode 100644
index 0000000..46acbde
--- /dev/null
+++ b/greeting-mojo/src/main/java/de/swingbe/greeting/plugin/GreetingMojo.java
@@ -0,0 +1,22 @@
+package de.swingbe.greeting.plugin;
+
+//provide infrastructure required to implement a MOJO except for the execute method
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugins.annotations.Mojo;
+
+/**
+ * Says "Hi" to the user.
+ *
+ */
+//required annotation that controls how and when the MOJO is executed
+@Mojo( name = "sayhi")
+public class GreetingMojo extends AbstractMojo
+{
+ public void execute() throws MojoExecutionException
+ {
+ //defined in AbstractMojo
+ //returns logger objects that allows plugins to display messages
+ getLog().info( "Hello, world." );
+ }
+}