diff --git a/.gitignore b/.gitignore
index 517b373b236976d2739f7f1621b70204f403ecf2..23efeb8c67cfc0bab8b0d9644729c9d8ca42eb34 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,6 @@
 bin
 pluginfile-track-manager*.jar
+.idea/
+target/
+.settings/
+*.iml
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000000000000000000000000000000000000..3b4db040e815168ff1d0d6d57a31b21b43aed67d
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <groupId>org.bioimageanalysis.icy</groupId>
+    <artifactId>track-manager</artifactId>
+    <version>1.4.5</version>
+
+    <name>Track Manager</name>
+    <description>
+        he track manager enables the use of DSP-like trackProcessors.
+        This can affect the display of tracks, selection in time or by ROIs, and also compute some views like the overlaid and animated local flow graph, polar graph.
+    </description>
+
+    <properties>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <jdk.version>1.8</jdk.version>
+
+        <maven.compiler.source>1.8</maven.compiler.source>
+        <maven.compiler.target>1.8</maven.compiler.target>
+
+        <outputJar>${project.build.outputDirectory}/../plugin</outputJar>
+    </properties>
+
+    <build>
+        <finalName>${project.artifactId}</finalName>
+
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-jar-plugin</artifactId>
+                <version>3.1.2</version>
+                <configuration>
+                    <outputDirectory>${outputJar}</outputDirectory>
+                    <archive>
+                        <manifest>
+                            <addClasspath>true</addClasspath>
+                            <mainClass>plugins.fab.trackmanager.TrackManager</mainClass>
+                        </manifest>
+                    </archive>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.bioimageanalysis.icy</groupId>
+            <artifactId>icy-kernel</artifactId>
+            <version>2.1.0</version>
+        </dependency>
+        <dependency>
+            <groupId>org.bioimageanalysis.icy</groupId>
+            <artifactId>icy-connected-components</artifactId>
+            <version>4.8.5</version>
+        </dependency>
+    </dependencies>
+
+    <repositories>
+        <repository>
+            <id>icy</id>
+            <url>https://icy-nexus.pasteur.fr/repository/Icy/</url>
+        </repository>
+    </repositories>
+
+    <distributionManagement>
+        <repository>
+            <id>icy-prod</id>
+            <name>icy-prod</name>
+            <url>https://icy-nexus.pasteur.fr/repository/icy-core/</url>
+        </repository>
+        <snapshotRepository>
+            <id>icy-dev</id>
+            <name>icy-dev</name>
+            <url>https://icy-nexus-dev.pasteur.cloud/repository/icy-core/</url>
+        </snapshotRepository>
+    </distributionManagement>
+</project>
\ No newline at end of file
diff --git a/src/plugins/fab/trackmanager/Link.java b/src/main/java/plugins/fab/trackmanager/Link.java
similarity index 100%
rename from src/plugins/fab/trackmanager/Link.java
rename to src/main/java/plugins/fab/trackmanager/Link.java
diff --git a/src/plugins/fab/trackmanager/PluginTrackManagerProcessor.java b/src/main/java/plugins/fab/trackmanager/PluginTrackManagerProcessor.java
similarity index 100%
rename from src/plugins/fab/trackmanager/PluginTrackManagerProcessor.java
rename to src/main/java/plugins/fab/trackmanager/PluginTrackManagerProcessor.java
diff --git a/src/plugins/fab/trackmanager/TrackDetection.java b/src/main/java/plugins/fab/trackmanager/TrackDetection.java
similarity index 100%
rename from src/plugins/fab/trackmanager/TrackDetection.java
rename to src/main/java/plugins/fab/trackmanager/TrackDetection.java
diff --git a/src/plugins/fab/trackmanager/TrackGroup.java b/src/main/java/plugins/fab/trackmanager/TrackGroup.java
similarity index 100%
rename from src/plugins/fab/trackmanager/TrackGroup.java
rename to src/main/java/plugins/fab/trackmanager/TrackGroup.java
diff --git a/src/plugins/fab/trackmanager/TrackLengthDialog.java b/src/main/java/plugins/fab/trackmanager/TrackLengthDialog.java
similarity index 100%
rename from src/plugins/fab/trackmanager/TrackLengthDialog.java
rename to src/main/java/plugins/fab/trackmanager/TrackLengthDialog.java
diff --git a/src/plugins/fab/trackmanager/TrackManager.java b/src/main/java/plugins/fab/trackmanager/TrackManager.java
similarity index 100%
rename from src/plugins/fab/trackmanager/TrackManager.java
rename to src/main/java/plugins/fab/trackmanager/TrackManager.java
diff --git a/src/plugins/fab/trackmanager/TrackManagerPainter.java b/src/main/java/plugins/fab/trackmanager/TrackManagerPainter.java
similarity index 100%
rename from src/plugins/fab/trackmanager/TrackManagerPainter.java
rename to src/main/java/plugins/fab/trackmanager/TrackManagerPainter.java
diff --git a/src/plugins/fab/trackmanager/TrackManagerProcessorListener.java b/src/main/java/plugins/fab/trackmanager/TrackManagerProcessorListener.java
similarity index 100%
rename from src/plugins/fab/trackmanager/TrackManagerProcessorListener.java
rename to src/main/java/plugins/fab/trackmanager/TrackManagerProcessorListener.java
diff --git a/src/plugins/fab/trackmanager/TrackPainterChangeEvent.java b/src/main/java/plugins/fab/trackmanager/TrackPainterChangeEvent.java
similarity index 100%
rename from src/plugins/fab/trackmanager/TrackPainterChangeEvent.java
rename to src/main/java/plugins/fab/trackmanager/TrackPainterChangeEvent.java
diff --git a/src/plugins/fab/trackmanager/TrackPainterListener.java b/src/main/java/plugins/fab/trackmanager/TrackPainterListener.java
similarity index 100%
rename from src/plugins/fab/trackmanager/TrackPainterListener.java
rename to src/main/java/plugins/fab/trackmanager/TrackPainterListener.java
diff --git a/src/plugins/fab/trackmanager/TrackPanel.java b/src/main/java/plugins/fab/trackmanager/TrackPanel.java
similarity index 100%
rename from src/plugins/fab/trackmanager/TrackPanel.java
rename to src/main/java/plugins/fab/trackmanager/TrackPanel.java
diff --git a/src/plugins/fab/trackmanager/TrackPool.java b/src/main/java/plugins/fab/trackmanager/TrackPool.java
similarity index 100%
rename from src/plugins/fab/trackmanager/TrackPool.java
rename to src/main/java/plugins/fab/trackmanager/TrackPool.java
diff --git a/src/plugins/fab/trackmanager/TrackSegment.java b/src/main/java/plugins/fab/trackmanager/TrackSegment.java
similarity index 100%
rename from src/plugins/fab/trackmanager/TrackSegment.java
rename to src/main/java/plugins/fab/trackmanager/TrackSegment.java