<?xml version="1.0" encoding="UTF-8"?>
<!--
  ~ Copyright 2006 The Apache Software Foundation.
  ~
  ~ Licensed 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.
-->
<metadata>
    <plugins>
        <plugin>
            <name>Maven TEST Complete Plugin</name>
            <prefix>archetypes</prefix>
            <artifactId>maven-archetype-test</artifactId>
        </plugin>
        <plugin>
            <name>Maven TEST Partial Plugin</name>
            <prefix>archetypes</prefix>
            <artifactId>maven-archetype-test-partial</artifactId>
        </plugin>
        <plugin>
            <name>Maven TEST Site Plugin</name>
            <prefix>archetypes</prefix>
            <artifactId>maven-archetype-test-site</artifactId>
        </plugin>
    </plugins>
</metadata>