Ant task package hinzugefuegt. Erstellt Repo aus binary modules. Basis f. zukuenftige distribution.

git-svn-id: https://svn.libreccm.org/ccm/trunk@147 8810af33-2d31-482b-a856-94f89814c4df
master
pb 2009-04-20 08:09:01 +00:00
parent e351309e2b
commit 6fa618b948
3 changed files with 182 additions and 35 deletions

View File

@ -870,7 +870,7 @@
<xsl:template name="TargetDeploy">
<xsl:variable name="name" select="@name"/>
<!-- Deploy hooks -->
<xsl:for-each select="/ccm:project/ccm:build/ccm:application">
<xsl:variable name="name" select="@name"/>
<xsl:variable
@ -886,6 +886,8 @@
<xsl:variable name="hassrcdir"
select="$application/ccm:directories/ccm:directory[@name='src'] or
not($application/ccm:directories)"/>
<!-- Deploy hooks -->
<xsl:if test="$application/@buildHooks">
<target name="deploy-{$name}-hook" depends="init">
<ant target="deploy-hook" dir="{$name}" inheritRefs="true">
@ -895,19 +897,7 @@
</ant>
</target>
</xsl:if>
<!-- Deploy War -->
<target name="deploy-war-{$name}" depends="init,jar-classes-{$name}">
<mkdir dir="${{deploy.war.dir}}"/>
<mkdir dir="{$name}/${{lib.dir}}"/>
<war destfile="${{deploy.war.dir}}/${{apps.{$name}.name}}-${{apps.{$name}.version}}.war"
webxml="{$name}/${{web.dir}}/WEB-INF/web.xml">
<fileset dir="{$name}/${{web.dir}}">
<exclude name="WEB-INF/web.xml"/>
</fileset>
<lib dir="{$name}/${{lib.dir}}"/>
<classes dir="{$name}/${{build.classes.dir}}"/>
</war>
</target>
<!-- Deploy Jar -->
<target name="deploy-jar-classes-{$name}" depends="init,jar-classes-{$name}">
<mkdir dir="${{deploy.lib.dir.{$name}}}"/>
@ -920,6 +910,7 @@
</xsl:call-template>
</xsl:for-each>
</target>
<!-- Deploy classes -->
<xsl:if test="$hassrcdir or $haspdldir">
<target name="deploy-classes-{$name}" depends="init,build-{$name}">
@ -1118,6 +1109,148 @@
<xsl:template name="TargetPackage">
<xsl:variable name="name" select="@name"/>
<!-- Step through the list of modules to compile and package as specified in project.xml -->
<xsl:for-each select="/ccm:project/ccm:build/ccm:application">
<xsl:variable name="name" select="@name"/>
<xsl:variable name="application"
select="document(concat(@name,'/application.xml'),/ccm:project)/ccm:application"/>
<xsl:variable name="buildhooks" select="$application/@buildHooks"/>
<!-- Check if module uses pdl -->
<xsl:variable name="haspdldir"
select="$application/ccm:directories/ccm:directory[@name='pdl'] or
not($application/ccm:directories)"/>
<!-- Check if module uses sql -->
<xsl:variable name="hassqldir"
select="$application/ccm:directories/ccm:directory[@name='sql'] or
not($application/ccm:directories)"/>
<!-- Check if module uses an additional src dir to compile -->
<xsl:variable name="hassrcdir"
select="$application/ccm:directories/ccm:directory[@name='src'] or
not($application/ccm:directories)"/>
<!-- Package hooks -->
<xsl:if test="$application/@buildHooks">
<target name="package-{$name}-hook" depends="init">
<ant target="deploy-hook" dir="{$name}" inheritRefs="true">
<xsl:attribute name="antfile">
<xsl:value-of select="$application/@buildHooks"/>
</xsl:attribute>
</ant>
</target>
</xsl:if>
<!-- Package Jar Classes -->
<target name="package-jar-classes-{$name}" depends="init,jar-classes-{$name}">
<mkdir dir="${{package.dir}}/binaries/"/>
<copy todir="${{package.dir}}/binaries/"
file="{$name}/${{build.dir}}/${{apps.{$name}.name}}-${{apps.{$name}.version}}.jar"/>
<!--
<xsl:for-each select="$application/ccm:systemPackages/ccm:package">
<xsl:call-template name="TargetDeploySystemJar">
<xsl:with-param name="name" select="$name"/>
<xsl:with-param name="package" select="@path"/>
</xsl:call-template>
</xsl:for-each>
-->
</target>
<!-- Package pdl -->
<xsl:if test="$haspdldir">
<target name="package-pdl-{$name}" depends="init,jar-pdl-{$name}">
<mkdir dir="${{package.dir}}/binaries/"/>
<copy todir="${{package.dir}}/binaries/">
<fileset dir="{$name}/${{build.dir}}">
<include name="*pdl.jar"/>
</fileset>
</copy>
</target>
</xsl:if>
<!-- Package sql -->
<xsl:if test="$hassqldir or $haspdldir">
<target name="package-sql-{$name}"
depends="init,generate-ddl-{$name},jar-sql-{$name}">
<mkdir dir="${{package.dir}}/binaries/"/>
<copy todir="${{package.dir}}/binaries/">
<fileset dir="{$name}/${{build.dir}}">
<include name="*sql.jar"/>
</fileset>
</copy>
</target>
</xsl:if>
<!-- Package external libs, not developed by the CCM project.
Located in a modules lib directory. -->
<target name="package-lib-{$name}" depends="init">
<mkdir dir="${{package.dir}}/binaries/{$name}/lib/"/>
<copy todir="${{package.dir}}/binaries/{$name}/lib/" preservelastmodified="true">
<fileset dir="{$name}">
<include name="${{lib.dir}}/**"/>
</fileset>
<mapper type="glob" to="*" from="${{lib.dir}}${{file.separator}}*"/>
</copy>
</target>
<!-- Package web directory -->
<target name="package-web-{$name}" depends="init">
<mkdir dir="${{package.dir}}/binaries/{$name}/web/"/>
<copy todir="${{package.dir}}/binaries/{$name}/web/">
<fileset dir="{$name}">
<include name="${{web.dir}}/**"/>
</fileset>
<mapper type="glob" to="*" from="${{web.dir}}${{file.separator}}*"/>
</copy>
</target>
<!-- Package an app by combining all necessary steps -->
<target name="package-{$name}" description="Packages the '{$name}' application">
<xsl:attribute name="depends">
<xsl:text>init</xsl:text>
<xsl:text>,build-</xsl:text><xsl:value-of select="@name"/>
<xsl:if test="$buildhooks"><xsl:value-of
select="concat(',package-',$name,'-hook')"/></xsl:if>
<xsl:value-of select="concat(',package-jar-classes-',$name)"/>
<xsl:if test="$haspdldir">
<xsl:value-of select="concat(',package-pdl-',$name)"/>
</xsl:if>
<xsl:if test="$hassqldir or $haspdldir">
<xsl:value-of select="concat(',package-sql-',$name)"/>
</xsl:if>
<!--
<xsl:if test="$hassrcdir or $haspdldir"><xsl:value-of
select="concat(',package-classes-',$name)"/></xsl:if>
<xsl:value-of select="concat(',package-bin-',$name)"/>
-->
<xsl:value-of select="concat(',package-lib-',$name)"/>
<xsl:value-of select="concat(',package-web-',$name)"/>
</xsl:attribute>
<echo message="Package created for '{$name}' in ${{package.dir}}/binaries/"/>
</target>
</xsl:for-each>
<!-- Master package -->
<!-- depends="init,deploy-global,deploy-local,copy-webxml" -->
<!-- Step through the list of modules and package each one built -->
<target name="package">
<xsl:attribute name="description">
Builds all applications and creates binary packages for each module
</xsl:attribute>
<xsl:attribute name="depends">
<xsl:text>init</xsl:text>
<xsl:for-each select="/ccm:project/ccm:build/ccm:application">
<xsl:variable name="name" select="@name"/>
<xsl:text>,package-</xsl:text><xsl:value-of select="@name"/>
</xsl:for-each>
</xsl:attribute>
<!-- <mkdir dir="${{package.dir}}"/> -->
</target>
</xsl:template> <!-- TargetPackage -->
@ -1152,7 +1285,7 @@
<xsl:variable name="context" select="@webxml"/>
<!-- web.xml will be copied implicitly from deployed WEB-INF! -->
<war>
<war needxmlfile="False" >
<xsl:attribute name="destfile">
<xsl:text>${ccm.project.dir}/</xsl:text><xsl:value-of select="@name"/>
<xsl:text>-</xsl:text><xsl:value-of select="@version"/>

View File

@ -41,34 +41,47 @@ Oracle 10g RDBMS or PostgresQL up to version 8.2
(c) If you don't already have a project.xml file in place, copy the file
project.xml.complete, too, and rename it to project.xml
Comment out those modules to don't need. Keep the included modules in sync
with the bundles application file! (see later)
with the bundles application file! (see later).
Specify name, version, release as you need, don't alter the other
attributes (exp. ccmVersion and webapps)!
(d) Edit the file local.ccm.properties and replace the specified bundle name
by your working bundle
by your working bundle. Keep the list of modules in sync with
project.xml!
(e) ant install-tomcat will install a test environment (Tomcat 6) into
the runtime directory
(e) ant install-tomcat
will create a runtime directory and install Tomcat 6 for testing.
(f) ant configure will create the compile and deploy tasks
(f) ant configure
will create the compile and deploy tasks
(g) ant deploy will compile and deploy into your test environment (runtime)
(g) ant deploy
will compile and deploy into your test environment (runtime)
(h) ant load-bundle will load the database. May take several minutes!
(h) ant load-bundle
will load the database. May take several minutes!
(i) ant start will start tomcat
(i) ant start
will start tomcat
(j) Open your browser:
http://localhost:8080/
http://localhost:8080/ccm/content-center/
(k) ant create-war will create a war file of the deployed project for
(k) ant create-war
will create a war file from the deployed project for
installation in any Tomcat 6 compliant servlet container.
(l) ant package
will create a repository of binary modules which may serve
as a base for distribution and user install & maintenance
4. NOTES
Configuration:
ccm-ldn-aplaws/bundles/* ("complete" bundle is default)
ccm-ldn-aplaws/bundles/* ("devel" bundle is default)
local.build.properties
local.runtime.properties
local.ccm.properties

View File

@ -7,16 +7,17 @@
Comment out those modules to don't need. Keep the included modules in sync
with the bundles application file! -->
<ccm:project name="aplaws-svn"
prettyName="aplaws-svn"
ccmVersion="6.1"
type="application"
webxml="web.xml-aplaws"
xsi:schemaLocation="http://ccm.redhat.com/ccm-project file:tools/devel/xsd/project.xsd"
xmlns:ccm="http://ccm.redhat.com/ccm-project"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
version="2.9.2"
release="1">
<ccm:project xmlns:ccm="http://ccm.redhat.com/ccm-project"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://ccm.redhat.com/ccm-project file:tools/devel/xsd/project.xsd"
ccmVersion="6.1"
name="aplaws"
prettyName="APLAWS plus"
type="application"
version="1-0-5"
release="alpha-1"
webxml="web.xml-aplaws"
webapp="ROOT" >
<!-- List all target databases here -->
<ccm:databases>