Add 'sar' as a connector module git-svn-id: https://svn.apache.org/repos/asf/maven/maven-1/plugins/trunk@114225 13f79535-47bb-0310-9956-ffa450edef68
234 lines
9.1 KiB
XML
234 lines
9.1 KiB
XML
<?xml version="1.0"?>
|
|
|
|
<project
|
|
xmlns:j="jelly:core"
|
|
xmlns:ant="jelly:ant"
|
|
xmlns:license="license"
|
|
xmlns:util="jelly:util"
|
|
xmlns:x="jelly:xml"
|
|
xmlns:artifact="artifact"
|
|
>
|
|
|
|
<!--==================================================================-->
|
|
<!-- Default goal : Builds a ear file -->
|
|
<!--==================================================================-->
|
|
<goal name="ear" prereqs="ear:ear" description="Build an ear file"/>
|
|
|
|
<!--==================================================================-->
|
|
<!-- Initializations -->
|
|
<!--==================================================================-->
|
|
<goal name="ear:init"
|
|
description="Initialise filesystem and other resources for an ear">
|
|
|
|
</goal>
|
|
|
|
<!--==================================================================-->
|
|
<!-- Builds an ear file -->
|
|
<!--==================================================================-->
|
|
<goal name="ear:ear" prereqs="ear:init" description="Build an ear file">
|
|
|
|
<ant:mkdir dir="${maven.build.dir}" />
|
|
|
|
<j:set var="isGenerateAppXML"
|
|
value="${context.getVariable('maven.ear.appxml.generate')}"/>
|
|
<j:if test="${isGenerateAppXML == 'true'}">
|
|
<!-- make sure that target directory exists -->
|
|
<ant:mkdir dir="${maven.ear.descriptordir}"/>
|
|
<attainGoal name="ear:generate-ear-descriptor"/>
|
|
</j:if >
|
|
|
|
<ant:echo>Building EAR ${maven.final.name} with appxml "${maven.ear.appxml}"</ant:echo>
|
|
|
|
<ant:available property="maven.ear.manifest.available"
|
|
file="${maven.ear.manifest}"/>
|
|
|
|
<ant:ear destfile="${maven.build.dir}/${maven.final.name}.ear"
|
|
appxml="${maven.ear.appxml}">
|
|
|
|
<fileset dir="${maven.ear.src}" casesensitive="false"
|
|
excludes="**/META-INF/application.xml"/>
|
|
|
|
<!-- include marked dependencies -->
|
|
<j:forEach var="lib" items="${pom.artifacts}">
|
|
<j:set var="dep" value="${lib.dependency}"/>
|
|
<j:if test="${dep.getProperty('ear.bundle')=='true'}">
|
|
|
|
<!--
|
|
We know that this dep "wants" to be bundled.
|
|
-->
|
|
|
|
<ant:echo>Bundling: ${dep.type} - ${dep.id}</ant:echo>
|
|
<ant:fileset dir="${lib.file.parent}">
|
|
<ant:include name="${lib.file.name}"/>
|
|
</ant:fileset>
|
|
|
|
</j:if>
|
|
</j:forEach>
|
|
|
|
<!-- include license -->
|
|
<j:set var="licenseFileName"><license:fileName/></j:set>
|
|
<util:file name="${licenseFileName}" var="licenseFile"/>
|
|
<ant:metainf dir="${licenseFile.canonicalFile.parent}">
|
|
<ant:include name="${licenseFile.canonicalFile.name}"/>
|
|
</ant:metainf>
|
|
|
|
<j:if test="${maven.ear.manifest.available}">
|
|
<ant:setProperty name="manifest" value="${maven.ear.manifest}" />
|
|
</j:if>
|
|
|
|
<!-- standard manifest entries -->
|
|
<ant:manifest>
|
|
<ant:attribute name="Built-By" value="${user.name}" />
|
|
<ant:section name="${pom.package}">
|
|
<ant:attribute name="Specification-Title" value="${pom.artifactId}" />
|
|
<ant:attribute name="Specification-Version"
|
|
value="${pom.currentVersion}" />
|
|
<ant:attribute name="Specification-Vendor"
|
|
value="${pom.organization.name}" />
|
|
<ant:attribute name="Implementation-Title"
|
|
value="${pom.package}" />
|
|
<ant:attribute name="Implementation-Version"
|
|
value="${pom.currentVersion}" />
|
|
<ant:attribute name="Implementation-Vendor"
|
|
value="${pom.organization.name}" />
|
|
</ant:section>
|
|
</ant:manifest>
|
|
</ant:ear>
|
|
|
|
</goal>
|
|
|
|
|
|
|
|
<!--==================================================================-->
|
|
<!-- Creates ear descriptor - application.xml file -->
|
|
<!--==================================================================-->
|
|
<goal name="ear:generate-ear-descriptor" description="Generates the ear descriptor">
|
|
|
|
<ant:echo>Generating appxml file:"${maven.ear.appxml} version ${maven.ear.appxml.version}"</ant:echo>
|
|
|
|
<j:file name="${maven.ear.appxml}"
|
|
outputMode="xml"
|
|
prettyPrint="true"
|
|
encoding="UTF-8"
|
|
>
|
|
|
|
<j:switch on="${maven.ear.appxml.version}">
|
|
<j:case value="1.3">
|
|
<x:doctype name="application" publicId="-//Sun Microsystems, Inc.//DTD J2EE Application 1.3//EN" systemId="http://java.sun.com/dtd/application_1_3.dtd"/>
|
|
</j:case>
|
|
<j:default>
|
|
<x:doctype name="application" publicId="-//Sun Microsystems, Inc.//DTD J2EE Application 1.2//EN" systemId="http://java.sun.com/j2ee/dtds/application_1_2.dtd"/>
|
|
</j:default>
|
|
</j:switch>
|
|
|
|
<x:element name="application">
|
|
<x:element name="display-name">${maven.ear.displayname}</x:element>
|
|
<j:forEach var="lib" items="${pom.artifacts}">
|
|
<j:set var="dep" value="${lib.dependency}"/>
|
|
<j:if test="${dep.getProperty('ear.bundle')=='true'}">
|
|
<j:choose>
|
|
<j:when test="${dep.type=='war'}">
|
|
<x:element name="module">
|
|
<x:element name="web">
|
|
<x:element name="web-uri">${dep.getArtifact()}</x:element>
|
|
<x:element name="context-root">${dep.getProperty('ear.appxml.war.context-root')}</x:element>
|
|
</x:element>
|
|
</x:element>
|
|
</j:when>
|
|
<j:when test="${dep.type=='ejb'}">
|
|
<x:element name="module">
|
|
<x:element name="ejb">${dep.getArtifact()}</x:element>
|
|
</x:element>
|
|
</j:when>
|
|
<j:when test="${dep.type=='jar'}">
|
|
<x:element name="module">
|
|
<x:element name="java">${dep.getArtifact()}</x:element>
|
|
</x:element>
|
|
</j:when>
|
|
<j:when test="${dep.type=='rar'}">
|
|
<x:element name="module">
|
|
<x:element name="connector">${dep.getArtifact()}</x:element>
|
|
</x:element>
|
|
</j:when>
|
|
<j:when test="${dep.type=='sar'}">
|
|
<x:element name="module">
|
|
<x:element name="connector">${dep.getArtifact()}</x:element>
|
|
</x:element>
|
|
</j:when>
|
|
</j:choose>
|
|
</j:if>
|
|
</j:forEach>
|
|
</x:element>
|
|
</j:file>
|
|
|
|
</goal>
|
|
|
|
|
|
|
|
<!--==================================================================-->
|
|
<!-- Install the ear in the local repository -->
|
|
<!--==================================================================-->
|
|
<goal name="ear:install"
|
|
prereqs="ear:ear"
|
|
description="Install the ear in the local repository">
|
|
|
|
<artifact:install
|
|
artifact="${maven.build.dir}/${maven.final.name}.ear"
|
|
type="ear"
|
|
project="${pom}"/>
|
|
|
|
</goal>
|
|
|
|
<!--==================================================================-->
|
|
<!-- Install the snapshot version of the ear in the local repository -->
|
|
<!--==================================================================-->
|
|
<goal name="ear:install-snapshot"
|
|
prereqs="ear:ear"
|
|
description="Install the snapshot version of the ear in the local repository">
|
|
|
|
<artifact:install-snapshot
|
|
artifact="${maven.build.dir}/${maven.final.name}.ear"
|
|
type="ear"
|
|
project="${pom}"/>
|
|
|
|
</goal>
|
|
|
|
<!--==================================================================-->
|
|
<!-- Deploys the ear to the remote repository -->
|
|
<!--==================================================================-->
|
|
<goal name="ear:deploy"
|
|
prereqs="ear:ear"
|
|
description="Deploys the ear to the remote repository">
|
|
|
|
<artifact:deploy
|
|
artifact="${maven.build.dir}/${maven.final.name}.ear"
|
|
type="ear"
|
|
project="${pom}"/>
|
|
|
|
</goal>
|
|
|
|
<!--==================================================================-->
|
|
<!-- Deploys the snapshot version of the ear to the remote repository -->
|
|
<!--==================================================================-->
|
|
<goal name="ear:deploy-snapshot"
|
|
prereqs="ear:ear"
|
|
description="Deploys the snapshot version of the ear to remote repository">
|
|
|
|
<artifact:deploy-snapshot
|
|
artifact="${maven.build.dir}/${maven.final.name}.ear"
|
|
type="ear"
|
|
project="${pom}"/>
|
|
|
|
</goal>
|
|
|
|
<!--==================================================================-->
|
|
<!-- Special no-op goal which can be used by other plugin which need -->
|
|
<!-- to get access to any of this plugin's property. This is -->
|
|
<!-- temporary, until we get explicit plugin dependencies. -->
|
|
<!--==================================================================-->
|
|
<goal name="ear:load"/>
|
|
|
|
|
|
|
|
</project>
|