Initial revision
git-svn-id: https://svn.apache.org/repos/asf/maven/maven-1/plugins/trunk@112724 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
150
plugin/plugin.jelly
Normal file
150
plugin/plugin.jelly
Normal file
@@ -0,0 +1,150 @@
|
||||
<?xml version="1.0"?>
|
||||
|
||||
<project
|
||||
xmlns:j="jelly:core"
|
||||
xmlns:u="jelly:util"
|
||||
xmlns:x="jelly:xml">
|
||||
|
||||
<goal name="plugin" description="Build and install a plugin">
|
||||
|
||||
<!-- big change. Most plugins are just a jar and have
|
||||
copied the maven.xml to tweak the resources
|
||||
Now it is up to the plugin to define the resources.
|
||||
-->
|
||||
<attainGoal name="java:jar"/>
|
||||
|
||||
<copy file="${maven.build.dir}/${maven.final.name}.jar"
|
||||
todir="${maven.repo.local}/maven/jars" />
|
||||
|
||||
</goal>
|
||||
|
||||
<goal name="plugin:install" prereqs="plugin"
|
||||
description="Install the plugin in Maven's plugins dir">
|
||||
|
||||
<copy file="${maven.build.dir}/${maven.final.name}.jar"
|
||||
todir="${maven.home}/plugins"/>
|
||||
|
||||
</goal>
|
||||
|
||||
<goal name="plugin:deploy" prereqs="plugin"
|
||||
description="Install an unpacked version of the plugin">
|
||||
|
||||
<mkdir dir="${maven.home}/plugins/${maven.final.name}"/>
|
||||
<unzip src="${maven.build.dir}/${maven.final.name}.jar"
|
||||
dest="${maven.home}/plugins/${maven.final.name}"/>
|
||||
|
||||
</goal>
|
||||
|
||||
|
||||
<!-- generate documentation -->
|
||||
|
||||
<!-- generate docs that are usually missing -->
|
||||
<goal name="plugin:generate-docs"
|
||||
description="Generate navigation, goals and properties docs">
|
||||
<attainGoal name="plugin:generate-navigation" />
|
||||
<attainGoal name="plugin:generate-goals" />
|
||||
<attainGoal name="plugin:generate-properties" />
|
||||
</goal>
|
||||
|
||||
<!-- generate a skeletal navigation.xml for the plugin specified
|
||||
by the 'plugin' variable -->
|
||||
<goal name="plugin:generate-navigation"
|
||||
description="Generate navigation.xml for the plugin">
|
||||
|
||||
<j:set var="skip" value="false" />
|
||||
<j:set var="fileName">${maven.docs.src}/navigation.xml</j:set>
|
||||
<u:available file="${fileName}">
|
||||
<echo>Skipping file as '${fileName}' already exists</echo>
|
||||
<j:set var="skip" value="true" />
|
||||
</u:available>
|
||||
|
||||
<j:if test="${!skip}">
|
||||
<mkdir dir="${maven.docs.src}" />
|
||||
<echo>Generating file '${fileName}'</echo>
|
||||
<j:file name="${fileName}" prettyPrint="true">
|
||||
<j:import file="${plugin.resources}/templates/navigation.jelly" inherit="true"/>
|
||||
</j:file>
|
||||
</j:if>
|
||||
</goal>
|
||||
|
||||
<!-- generate a skeletal goals.xml for the plugin specified -->
|
||||
<goal name="plugin:generate-goals"
|
||||
description="Generate goals.xml for the plugin">
|
||||
|
||||
<j:set var="skip" value="false" />
|
||||
<j:set var="fileName">${maven.docs.src}/goals.xml</j:set>
|
||||
<u:available file="${fileName}">
|
||||
<echo>Skipping file as '${fileName}' already exists</echo>
|
||||
<j:set var="skip" value="true" />
|
||||
</u:available>
|
||||
|
||||
<j:if test="${!skip}">
|
||||
<j:set var="pluginScript" value="false" />
|
||||
<u:available file="${basedir}/plugin.jelly">
|
||||
<j:set var="pluginScript" value="true" />
|
||||
</u:available>
|
||||
|
||||
<mkdir dir="${maven.docs.src}" />
|
||||
|
||||
<j:if test="${!pluginScript}">
|
||||
<!-- no plugin.jelly - generate a file for empty goals -->
|
||||
<echo>Generating 'empty' goals file '${fileName}'</echo>
|
||||
<j:set var="template" value="${plugin.resources}/templates/goals-empty.jelly" />
|
||||
</j:if>
|
||||
|
||||
<j:if test="${pluginScript}">
|
||||
<!-- generate docs based on plugin.jelly -->
|
||||
<x:parse xml="${basedir}/plugin.jelly" var="def"/>
|
||||
<echo>Generating file '${fileName}'</echo>
|
||||
<j:set var="template" value="${plugin.resources}/templates/goals.jelly"/>
|
||||
</j:if>
|
||||
|
||||
<j:file name="${fileName}" prettyPrint="true">
|
||||
<j:import file="${template}" inherit="true"/>
|
||||
</j:file>
|
||||
|
||||
</j:if>
|
||||
</goal>
|
||||
|
||||
<!-- generate properties documentation -->
|
||||
<goal name="plugin:generate-properties"
|
||||
description="Generate properties.xml for the plugin">
|
||||
|
||||
|
||||
<j:set var="skip" value="false" />
|
||||
<j:set var="fileName">${maven.docs.src}/properties.xml</j:set>
|
||||
<u:available file="${fileName}">
|
||||
<echo>Skipping file as '${fileName}' already exists</echo>
|
||||
<j:set var="skip" value="true" />
|
||||
</u:available>
|
||||
|
||||
<j:if test="${!skip}">
|
||||
<j:set var="props" value="false"/>
|
||||
<j:set var="propsFileName">${basedir}/plugin.properties</j:set>
|
||||
<u:available file="${propsFileName}">
|
||||
<j:set var="props" value="true" />
|
||||
</u:available>
|
||||
|
||||
<j:if test="${!props}">
|
||||
<echo>Generating 'empty' properties file '${fileName}'</echo>
|
||||
<j:set var="template" value="${plugin.resources}/templates/properties-empty.jelly"/>
|
||||
</j:if>
|
||||
|
||||
<j:if test="${props}">
|
||||
<echo>Generating file '${fileName}'</echo>
|
||||
<j:scope>
|
||||
<u:properties file="${propsFileName}" />
|
||||
<j:set var="vars" value="${context.variables}" scope="parent"/>
|
||||
</j:scope>
|
||||
<j:set var="template" value="${plugin.resources}/templates/properties.jelly"/>
|
||||
</j:if>
|
||||
|
||||
<mkdir dir="${maven.docs.src}" />
|
||||
|
||||
<j:file name="${fileName}" prettyPrint="true">
|
||||
<j:import file="${template}" inherit="true"/>
|
||||
</j:file>
|
||||
|
||||
</j:if>
|
||||
</goal>
|
||||
</project>
|
||||
Reference in New Issue
Block a user