diff --git a/flex-maven-plugin/plugins/flex-maven-plugin/pom.xml b/flex-maven-plugin/plugins/flex-maven-plugin/pom.xml
index 53f6d7b..dfa4d52 100644
--- a/flex-maven-plugin/plugins/flex-maven-plugin/pom.xml
+++ b/flex-maven-plugin/plugins/flex-maven-plugin/pom.xml
@@ -24,13 +24,11 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <groupId>org.apache.flex.maven.plugin.plugins</groupId>
+        <groupId>org.apache.flex.maven.plugin</groupId>
         <artifactId>plugins</artifactId>
         <version>1.0.0-SNAPSHOT</version>
     </parent>
 
-    <!-- This package name is intentional -->
-    <groupId>org.apache.maven.plugins</groupId>
     <artifactId>flex-maven-plugin</artifactId>
     <version>1.0.0-SNAPSHOT</version>
     <packaging>maven-plugin</packaging>
diff --git a/flex-maven-plugin/plugins/flex-maven-plugin/src/main/resources/META-INF/plexus/components.xml b/flex-maven-plugin/plugins/flex-maven-plugin/src/main/resources/META-INF/plexus/components.xml
index dfec973..92170fb 100644
--- a/flex-maven-plugin/plugins/flex-maven-plugin/src/main/resources/META-INF/plexus/components.xml
+++ b/flex-maven-plugin/plugins/flex-maven-plugin/src/main/resources/META-INF/plexus/components.xml
@@ -14,21 +14,21 @@
                 <phases>
                     <!--validate></validate>
                     <initialize></initialize-->
-                    <generate-sources>org.apache.maven.plugins:maven-flex-plugin:generate</generate-sources>
-                    <process-sources>org.apache.maven.plugins:maven-flex-plugin:compile</process-sources>
+                    <generate-sources>org.apache.flex.maven.plugin:flex-maven-plugin:generate</generate-sources>
+                    <!--process-sources></process-sources-->
                     <!--generate-resources></generate-resources>
                     <process-resources></process-resources-->
-                    <compile>org.apache.maven.plugins:maven-flex-plugin:compile</compile>
+                    <compile>org.apache.flex.maven.plugin:flex-maven-plugin:compile</compile>
                     <!--process-classes></process-classes-->
-                    <generate-test-sources>org.apache.maven.plugins:maven-flex-plugin:test-generate</generate-test-sources>
+                    <generate-test-sources>org.apache.flex.maven.plugin:flex-maven-plugin:test-generate</generate-test-sources>
                     <!--process-test-sources></process-test-sources>
                     <generate-test-resources></generate-test-resources>
                     <process-test-resources></process-test-resources-->
-                    <test-compile>org.apache.maven.plugins:maven-flex-plugin:test-compile</test-compile>
+                    <test-compile>org.apache.flex.maven.plugin:flex-maven-plugin:test-compile</test-compile>
                     <!--process-test-classes></process-test-classes-->
-                    <test>org.apache.maven.plugins:maven-flex-plugin:test</test>
+                    <test>org.apache.flex.maven.plugin:flex-maven-plugin:test</test>
                     <!--prepare-package></prepare-package-->
-                    <package>org.apache.maven.plugins:maven-flex-plugin:optimize</package>
+                    <package>org.apache.flex.maven.plugin:flex-maven-plugin:optimize</package>
                     <!--pre-integration-test></pre-integration-test>
                     <integration-test></integration-test>
                     <post-integration-test></post-integration-test>
@@ -52,21 +52,21 @@
                 <phases>
                     <!--validate></validate>
                     <initialize></initialize-->
-                    <generate-sources>org.apache.maven.plugins:maven-flex-plugin:generate</generate-sources>
-                    <process-sources>org.apache.maven.plugins:maven-flex-plugin:compile</process-sources>
+                    <generate-sources>org.apache.flex.maven.plugin:flex-maven-plugin:generate</generate-sources>
+                    <!--process-sources></process-sources-->
                     <!--generate-resources></generate-resources>
                     <process-resources></process-resources-->
-                    <compile>org.apache.maven.plugins:maven-flex-plugin:compile</compile>
+                    <compile>org.apache.flex.maven.plugin:flex-maven-plugin:compile</compile>
                     <!--process-classes></process-classes-->
-                    <generate-test-sources>org.apache.maven.plugins:maven-flex-plugin:test-generate</generate-test-sources>
+                    <generate-test-sources>org.apache.flex.maven.plugin:flex-maven-plugin:test-generate</generate-test-sources>
                     <!--process-test-sources></process-test-sources>
                     <generate-test-resources></generate-test-resources>
                     <process-test-resources></process-test-resources-->
-                    <test-compile>org.apache.maven.plugins:maven-flex-plugin:test-compile</test-compile>
+                    <test-compile>org.apache.flex.maven.plugin:flex-maven-plugin:test-compile</test-compile>
                     <!--process-test-classes></process-test-classes-->
-                    <test>org.apache.maven.plugins:maven-flex-plugin:test</test>
+                    <test>org.apache.flex.maven.plugin:flex-maven-plugin:test</test>
                     <!--prepare-package></prepare-package-->
-                    <package>org.apache.maven.plugins:maven-flex-plugin:optimize</package>
+                    <package>org.apache.flex.maven.plugin:flex-maven-plugin:optimize</package>
                     <!--pre-integration-test></pre-integration-test>
                     <integration-test></integration-test>
                     <post-integration-test></post-integration-test>
diff --git a/flex-maven-plugin/plugins/mavenizer-maven-plugin/pom.xml b/flex-maven-plugin/plugins/mavenizer-maven-plugin/pom.xml
index 1c49e8e..fa96893 100644
--- a/flex-maven-plugin/plugins/mavenizer-maven-plugin/pom.xml
+++ b/flex-maven-plugin/plugins/mavenizer-maven-plugin/pom.xml
@@ -24,18 +24,16 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <groupId>org.apache.flex.maven.plugin.plugins</groupId>
+        <groupId>org.apache.flex.maven.plugin</groupId>
         <artifactId>plugins</artifactId>
         <version>1.0.0-SNAPSHOT</version>
     </parent>
 
-    <!-- This package name is intentional -->
-    <groupId>org.apache.maven.plugins</groupId>
     <artifactId>mavenizer-maven-plugin</artifactId>
     <version>1.0.0-SNAPSHOT</version>
     <packaging>maven-plugin</packaging>
 
-    <name>Flex-Maven-Plugin / Plugins / flex-mavenizer-plugin</name>
+    <name>Flex-Maven-Plugin / Plugins / mavenizer-maven-plugin</name>
 
     <build>
         <plugins>
diff --git a/flex-maven-plugin/plugins/pom.xml b/flex-maven-plugin/plugins/pom.xml
index 9dcdb36..b0f0671 100644
--- a/flex-maven-plugin/plugins/pom.xml
+++ b/flex-maven-plugin/plugins/pom.xml
@@ -29,7 +29,6 @@
         <version>1.0.0-SNAPSHOT</version>
     </parent>
 
-    <groupId>org.apache.flex.maven.plugin.plugins</groupId>
     <artifactId>plugins</artifactId>
     <version>1.0.0-SNAPSHOT</version>
     <packaging>pom</packaging>
diff --git a/flex-maven-plugin/pom.xml b/flex-maven-plugin/pom.xml
index 8e70e75..87d2264 100644
--- a/flex-maven-plugin/pom.xml
+++ b/flex-maven-plugin/pom.xml
@@ -67,7 +67,7 @@
         <project.encoding>UTF-8</project.encoding>
         <project.build.sourceEncoding>${project.encoding}</project.build.sourceEncoding>
         <jdk.version>1.6</jdk.version>
-        <maven.version>3.0.4</maven.version>
+        <maven.version>3.1.1</maven.version>
     </properties>
 
     <modules>
@@ -81,7 +81,7 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-compiler-plugin</artifactId>
-                <version>2.4</version>
+                <!--version>2.4</version-->
                 <configuration>
                     <source>1.6</source>
                     <target>1.6</target>
@@ -91,7 +91,7 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-resources-plugin</artifactId>
-                <version>2.5</version>
+                <!--version>2.5</version-->
                 <configuration>
                     <encoding>${project.encoding}</encoding>
                 </configuration>
@@ -115,7 +115,6 @@
                 <groupId>org.apache.maven.plugin-tools</groupId>
                 <artifactId>maven-plugin-annotations</artifactId>
                 <version>3.2</version>
-                <scope>compile</scope>
             </dependency>
         </dependencies>
     </dependencyManagement>
diff --git a/flex-maven-plugin/testsuite/projects/concepts/flex/general/simple-swf/src/main/flex/Main.mxml b/flex-maven-plugin/testsuite/projects/concepts/flex/general/simple-swf/src/main/flex/Main.mxml
deleted file mode 100644
index c1d1f3b..0000000
--- a/flex-maven-plugin/testsuite/projects/concepts/flex/general/simple-swf/src/main/flex/Main.mxml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-
-  Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
-  this work for additional information regarding copyright ownership.
-  The ASF licenses this file to You under the Apache License, Version 2.0
-  (the "License"); you may not use this file except in compliance with
-  the License.  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
-
--->
-<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
-               xmlns:s="library://ns.adobe.com/flex/spark">
-    <s:Label text="Hello World!"/>
-</s:Application>
\ No newline at end of file
diff --git a/flex-maven-plugin/testsuite/projects/concepts/flex/general/simple-swc/pom.xml b/flex-maven-plugin/testsuite/src/test/resources/projects/concepts/flex/general/simple-swc/pom.xml
similarity index 92%
rename from flex-maven-plugin/testsuite/projects/concepts/flex/general/simple-swc/pom.xml
rename to flex-maven-plugin/testsuite/src/test/resources/projects/concepts/flex/general/simple-swc/pom.xml
index d46e731..879dd2e 100644
--- a/flex-maven-plugin/testsuite/projects/concepts/flex/general/simple-swc/pom.xml
+++ b/flex-maven-plugin/testsuite/src/test/resources/projects/concepts/flex/general/simple-swc/pom.xml
@@ -1,45 +1,45 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-  Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
-  this work for additional information regarding copyright ownership.
-  The ASF licenses this file to You under the Apache License, Version 2.0
-  (the "License"); you may not use this file except in compliance with
-  the License.  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
-
--->
-<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.apache.flex.maven.plugin.testsuite.projects</groupId>
-    <artifactId>flex.general.simple-swc</artifactId>
-    <version>1.0.0-SNAPSHOT</version>
-    <packaging>swc</packaging>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>flex-maven-plugin</artifactId>
-                <version>1.0.0-SNAPSHOT</version>
-                <extensions>true</extensions>
-                <configuration>
-                    <useLegacyCompiler>false</useLegacyCompiler>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+-->
+<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.apache.flex.maven.plugin.testsuite.projects</groupId>
+    <artifactId>flex.general.simple-swc</artifactId>
+    <version>1.0.0-SNAPSHOT</version>
+    <packaging>swc</packaging>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.flex.maven.plugin</groupId>
+                <artifactId>flex-maven-plugin</artifactId>
+                <version>1.0.0-SNAPSHOT</version>
+                <extensions>true</extensions>
+                <configuration>
+                    <useLegacyCompiler>true</useLegacyCompiler>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
 </project>
\ No newline at end of file
diff --git a/flex-maven-plugin/testsuite/projects/concepts/flex/general/simple-swc/src/main/flex/Main.mxml b/flex-maven-plugin/testsuite/src/test/resources/projects/concepts/flex/general/simple-swc/src/main/flex/Main.mxml
similarity index 99%
rename from flex-maven-plugin/testsuite/projects/concepts/flex/general/simple-swc/src/main/flex/Main.mxml
rename to flex-maven-plugin/testsuite/src/test/resources/projects/concepts/flex/general/simple-swc/src/main/flex/Main.mxml
index c1d1f3b..40c8efd 100644
--- a/flex-maven-plugin/testsuite/projects/concepts/flex/general/simple-swc/src/main/flex/Main.mxml
+++ b/flex-maven-plugin/testsuite/src/test/resources/projects/concepts/flex/general/simple-swc/src/main/flex/Main.mxml
@@ -1,23 +1,23 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-
-  Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
-  this work for additional information regarding copyright ownership.
-  The ASF licenses this file to You under the Apache License, Version 2.0
-  (the "License"); you may not use this file except in compliance with
-  the License.  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
-
--->
-<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
-               xmlns:s="library://ns.adobe.com/flex/spark">
-    <s:Label text="Hello World!"/>
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+-->
+<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
+               xmlns:s="library://ns.adobe.com/flex/spark">
+    <s:Label text="Hello World!"/>
 </s:Application>
\ No newline at end of file
diff --git a/flex-maven-plugin/testsuite/projects/concepts/flex/general/simple-swf/pom.xml b/flex-maven-plugin/testsuite/src/test/resources/projects/concepts/flex/general/simple-swf/pom.xml
similarity index 96%
rename from flex-maven-plugin/testsuite/projects/concepts/flex/general/simple-swf/pom.xml
rename to flex-maven-plugin/testsuite/src/test/resources/projects/concepts/flex/general/simple-swf/pom.xml
index bdcbced..6486841 100644
--- a/flex-maven-plugin/testsuite/projects/concepts/flex/general/simple-swf/pom.xml
+++ b/flex-maven-plugin/testsuite/src/test/resources/projects/concepts/flex/general/simple-swf/pom.xml
@@ -1,45 +1,45 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-  Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
-  this work for additional information regarding copyright ownership.
-  The ASF licenses this file to You under the Apache License, Version 2.0
-  (the "License"); you may not use this file except in compliance with
-  the License.  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
-
--->
-<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.apache.flex.maven.plugin.testsuite.projects</groupId>
-    <artifactId>flex.general.simple-swf</artifactId>
-    <version>1.0.0-SNAPSHOT</version>
-    <packaging>swf</packaging>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>flex-maven-plugin</artifactId>
-                <version>1.0.0-SNAPSHOT</version>
-                <extensions>true</extensions>
-                <configuration>
-                    <useLegacyCompiler>false</useLegacyCompiler>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+-->
+<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.apache.flex.maven.plugin.testsuite.projects</groupId>
+    <artifactId>flex.general.simple-swf</artifactId>
+    <version>1.0.0-SNAPSHOT</version>
+    <packaging>swf</packaging>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.flex.maven.plugin</groupId>
+                <artifactId>flex-maven-plugin</artifactId>
+                <version>1.0.0-SNAPSHOT</version>
+                <extensions>true</extensions>
+                <configuration>
+                    <useLegacyCompiler>false</useLegacyCompiler>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
 </project>
\ No newline at end of file
diff --git a/flex-maven-plugin/testsuite/projects/concepts/flex/general/simple-swc/src/main/flex/Main.mxml b/flex-maven-plugin/testsuite/src/test/resources/projects/concepts/flex/general/simple-swf/src/main/flex/Main.mxml
similarity index 99%
copy from flex-maven-plugin/testsuite/projects/concepts/flex/general/simple-swc/src/main/flex/Main.mxml
copy to flex-maven-plugin/testsuite/src/test/resources/projects/concepts/flex/general/simple-swf/src/main/flex/Main.mxml
index c1d1f3b..40c8efd 100644
--- a/flex-maven-plugin/testsuite/projects/concepts/flex/general/simple-swc/src/main/flex/Main.mxml
+++ b/flex-maven-plugin/testsuite/src/test/resources/projects/concepts/flex/general/simple-swf/src/main/flex/Main.mxml
@@ -1,23 +1,23 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-
-  Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
-  this work for additional information regarding copyright ownership.
-  The ASF licenses this file to You under the Apache License, Version 2.0
-  (the "License"); you may not use this file except in compliance with
-  the License.  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
-
--->
-<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
-               xmlns:s="library://ns.adobe.com/flex/spark">
-    <s:Label text="Hello World!"/>
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+-->
+<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
+               xmlns:s="library://ns.adobe.com/flex/spark">
+    <s:Label text="Hello World!"/>
 </s:Application>
\ No newline at end of file
