Ant

From Resin 3.0

(Difference between revisions)
Jump to: navigation, search
Line 3: Line 3:
  
 
Please use download are at the url above to obtain latest build of ant-plugin.
 
Please use download are at the url above to obtain latest build of ant-plugin.
 
 
Resin ant plugin automates deployment tasks.
 
 
Plugin provides the following tasks
 
 
deploy
 
undeploy
 
deploy-list
 
deploy-copy
 
 
 
Deploying remotely to Resin requires Resin remote deployment module to be
 
enabled. Please refer to the following resin.xml file for configuration detail.
 
 
<resin xmlns="http://caucho.com/ns/resin"
 
      xmlns:resin="urn:java:com.caucho.resin">
 
  <cluster id="">
 
 
    <!--
 
      - Configures authentication mechanism
 
    -->
 
    <resin:AdminAuthenticator password-digest="none">
 
      <resin:user name="foo" password="test"/>
 
    </resin:AdminAuthenticator>
 
 
    <!--
 
      - Starts Remote Administration Module
 
    -->
 
    <resin:RemoteAdminService/>
 
 
    <!--
 
      - Starts DeployService
 
    -->
 
    <resin:DeployService/>
 
 
    <server id="production">
 
      <http port="8080"/> <!-- deployments are accepted on standard HTTP port-->
 
    </server>
 
 
    <host id="">
 
      <web-app-deploy path="webapps"/> <!--exploded web archives directory-->
 
    </host>
 
  </cluster>
 
</resin>
 
 
Resin Ant Task Common configuration attributes
 
All Ant tasks require the following attributes supplied
 
 
resinHome - sets ResinHome that contains the libraries that will be used
 
for remote deployment. Version of Resin at resinHome location should match
 
version of Resin deployed on remote machine.
 
 
server - sets the dns name or ip of the remote server to connect to.
 
 
port - sets the port of the remote server.
 
 
user - sets user-name to use for authentication.
 
 
password - sets password to use for authentication.
 
 
logLevel - sets the log level (finest, finer, fine, ...)
 
 
 
Task deploy
 
------------------------------------------------------------------------------
 
This task deploys a war file to a Resin server
 
------------------------------------------------------------------------------
 
Attribute          | Description
 
------------------------------------------------------------------------------
 
warFile            | path to the war file to deploy
 
context            | context to deploy the app to (optional)
 
host                | virtual host
 
stage              | stage
 
version            | war file version
 
------------------------------------------------------------------------------
 
 
  
 
== resin-jspc ==
 
== resin-jspc ==

Revision as of 23:06, 11 May 2011

Contents

Ant Tasks Repository

Ant plugin project has been moved to a new home: https://github.com/caucho/ant-plugin

Please use download are at the url above to obtain latest build of ant-plugin.

resin-jspc

Resin 3.1.5 includes a resin-ant.jar in ${resin.home}/plugins/resin-ant.jar with several useful task:

<project name="test" default="test" basedir=".">
    <property name="resin.home" value="/usr/local/share/resin"/>

    <target name="test">
         <taskdef name="resin-jspc"
                          classname="com.caucho.ant.Jspc">
             <classpath>
                   <fileset dir="${resin.home}">
                       <include name="plugins/resin-ant.jar"/>
                       <include name="lib/*.jar"/>
                   </fileset>
             </classpath>
         </taskdef>

         <resin-jspc rootDirectory="/home/ferg/ws/dist/my-webapp"/>
    </target>

 </project>

Deployment tasks

Task and parameter summary

Task name Parameter name Required? Default Description
Common properties for all tasks server Yes N/A The IP or address of the Resin server
port Yes N/A The port of the Resin server's HTTP port
user Yes N/A The user to use when logging into the Resin server
password Yes N/A The password to use when logging into the Resin server
commitMessage No N/A The commit message to log for any changes to the application repository
resin-upload-war (com.caucho.ant.ResinUploadWar) warFile Yes N/A The war file to upload to the Resin server
stage No "default" The stage to use for the deployed application
virtualHost No "default" The virtual host to use for the deployed application
contextRoot No /[war file prefix] The context root of the deployed application
version No N/A The version to use for the deployed application
archive No false When set to true, an archive tag is set in addition to the main tag. Can also be an explicit tag.
writeHead No true When set to true and using versioning, a "head" tag is also set.
resin-copy-tag (com.caucho.ant.ResinCopyTag) stage No "default" The stage of the target tag
virtualHost No "default" The virtual host of the target tag
contextRoot Yes (if tag not given) N/A The context root of the target tag
version No N/A The version of the target tag
sourceStage No "default" The stage of the source tag
sourceVirtualHost No "default" The virtual host of the source tag
sourceContextRoot Yes (if sourceTag not given) N/A The context root of the source tag
sourceVersion No N/A The version of the source tag
tag Yes (if contextRoot not given) N/A An explicit target tag
sourceTag Yes (if sourceContextRoot not given) N/A An explicit source tag
resin-delete-tag (com.caucho.ant.ResinDeleteTag) stage No "default" The stage of the tag to be deleted
resin.virtualHost No "default" The virtual host of the tag to be deleted
contextRoot Yes (if tag not given) N/A The context root of the tag to be deleted
version No N/A The version of the tag to be deleted
tag Yes (if contextRoot not given) N/A An explicit tag to be deleted
resin-query-tags (com.caucho.ant.ResinQueryTags) stage Yes (At least one pattern (either stage, virtualHost, contextRoot, version, or pattern) must be given "default" The query pattern for the stage portion of tags in the repository
virtualHost Yes (At least one pattern (either stage, virtualHost, contextRoot, version, or pattern) must be given "default" The query pattern for the virtual host portion of tags in the repository
contextRoot Yes (At least one pattern (either stage, virtualHost, contextRoot, version, or pattern) must be given ".*" The query pattern for the context root portion of tags in the repository
version Yes (At least one pattern (either stage, virtualHost, contextRoot, version, or pattern) must be given N/A The query pattern for the version portion of tags in the repository
pattern Yes (At least one pattern (either stage, virtualHost, contextRoot, version, or pattern) must be given N/A An explicit query pattern for entire tags in the repository

resin-upload-war

Resin 4.0.2 will include an Ant deploy client that can deploy applications to a Resin cloud.

<?xml version="1.0"?>
<project name="test" default="test" basedir=".">
  <property name="resin.home" value="/usr/share/resin"/>
  <target name="test">
    <taskdef name="resin-upload-war" classname="com.caucho.ant.ResinUploadWar">
      <classpath>
        <fileset dir="${resin.home}">
          <include name="lib/*.jar"/>
          <include name="plugins/resin-ant.jar"/>
        </fileset>
      </classpath>
    </taskdef>

    <resin-upload-war server="localhost"
                      port="8080"
                      user="admin"
                      password="myadminpass"
                      warFile="cloudapp.war"/>
  </target>
</project>

To deploy an application with a version, use the "version" attribute:

    <resin-upload-war server="localhost"
                      port="8080"
                      user="admin"
                      password="myadminpass"
                      warFile="cloudapp.war"
                      version="1.0"/>

To place an application into another stage before deploying it to production, set the stage attribute:

    <resin-upload-war server="localhost"
                      port="8080"
                      user="admin"
                      password="myadminpass"
                      warFile="cloudapp.war"
                      stage="preview"/>

resin-copy-tag

To copy a tag, use the "resin-copy-tag" task:

<?xml version="1.0"?>
<project name="test" default="test" basedir=".">
  <property name="resin.home" value="/usr/share/resin"/>
  <target name="test">
    <taskdef name="resin-copy-tag" classname="com.caucho.ant.ResinCopyTag">
      <classpath>
        <fileset dir="${resin.home}">
          <include name="lib/*.jar"/>
          <include name="plugins/resin-ant.jar"/>
        </fileset>
      </classpath>
    </taskdef>

    <resin-copy-tag server="localhost"
                    port="8080"
                    user="admin"
                    password="myadminpass"
                    stage="default"
                    contextRoot="cloudapp"
                    sourceStage="preview"/>
  </target>
</project>

Copying tags can be used to move applications between stages, to affect the "head" version of a webapp, or to change the name of a webapp.

resin-delete-tag

To delete a tag, use the "resin-delete-tag" task:

<?xml version="1.0"?>
<project name="test" default="test" basedir=".">
  <property name="resin.home" value="/usr/share/resin"/>
  <target name="test">
    <taskdef name="resin-delete-tag" classname="com.caucho.ant.ResinDeleteTag">
      <classpath>
        <fileset dir="${resin.home}">
          <include name="lib/*.jar"/>
          <include name="plugins/resin-ant.jar"/>
        </fileset>
      </classpath>
    </taskdef>

    <resin-delete-tag server="localhost"
                      port="8080"
                      user="admin"
                      password="myadminpass"
                      stage="preview"
                      contextRoot="cloudapp"/>
  </target>
</project>

resin-query-tags

<?xml version="1.0"?>
<project name="test" default="test" basedir=".">
  <property name="resin.home" value="/usr/share/resin"/>
  <target name="test">
    <taskdef name="resin-query-tags" classname="com.caucho.ant.ResinQueryTags">
      <classpath>
        <fileset dir="${resin.home}">
          <include name="lib/*.jar"/>
          <include name="plugins/resin-ant.jar"/>
        </fileset>
      </classpath>
    </taskdef>

    <resin-query-tags server="localhost"
                      port="8080"
                      user="admin"
                      password="myadminpass"
                      contextRoot="cloudapp"/>
  </target>
</project>
Personal tools