Skip to end of metadata
Go to start of metadata

KFS uses Ant for deployments and unit testing.

Build Properties

Configuration properties may be specified by certain files which are looked for automatically by the script. The first definition of a property will be used by the build, i.e. Ant does not work like many other things where the last value wins. There are three locations that that the build script attempts to load properties from, in the order specified:

  1. ${user home}/kuali-build.properties
    Icon

    User Home Locations

    • Unix: /home/username/kuali-build.properties
    • Mac OS X: /Users/username/kuali-build.properties
    • Windows XP: C:/Documents and Settings/username/kuali-build.properties
    • Windows Vista: C:/Users/username/kuali-build.properties
  2. ${shared.external.build.properties} (location set in the above kuali-build.properties)
  3. build.properties (delivered in the root of the project)

For ease of future upgrades, you should avoid modifying the third file. Instead, you can override any or all of those properties in the first two. For example...

  1. Create a second build properties file in the root of the project (e.g. sampleu-build.properties).
  2. Ensure that your new properties file will be loaded by adding the following to your ${user home}/kuali-build.properties file.
    example institution shared properties reference

Build Target Overview

To deploy a KFS distribution, you can use the dist or dist-local targets of the KFS build.xml. To execute the KFS unit tests, you can use the test-local or continuous-integration targets.  The dist-local and test-local targets assume that you are using an IDE for compilation. If not, you will need to add this line to your build properties file and use the make-source target, too: make-source.target.directory=work/web-root/WEB-INF/classes. The continuous-integration target is intended for use within an automated testing tool like Anthill Pro. See the setup instructions and the help target in the build file itself for more information.

Dist Targets Flow: Test Targets Flow:

Directory & File Creation

KFS requires that certain external directories and files exist at runtime.

  • The settings and security directories must be created and populated
    Icon

    The goal of externalizing some of the application configuration is to allow for modification without a deployment. Also, the secure information contained in some of these files (e.g. database passwords) has different access requirements than code does.

  • The logs and work (attachments, reports, staging) directories must be created
  • Certain files must be added to the application server

The dist-local target accounts for these external dependencies. It copies the files and folders in the build/external directory of the project to their expected locations. The expected locations are configurable via build properties. The configuration properties page lists the default values for the properties that control the expected locations.

Source

Destination

appserver/*.jar

${appserver.lib.dir}

appserver/carol.properties

${appserver.classes.dir}

appserver/context.xml

${appserver.localhost.dir} or META-INF directory in war

work/*

${external.work.directory}

log4j.properties

${settings.directory}

security.properties

${security.directory}

The dist-local and dist targets both generate / extract certain files that reside within the application itself, using the contents of the build/project directory.

Source

Destination

configuration.properties

work/src

spy.properties

work/src

web.xml

work/web-root/WEB-INF

help.zip

work/web-root/static/help

rice-0.9.0.4-licenses.zip

licenses/rice

rice-0.9.0.4-web.zip

work/web-root

Unable to render {include} The included page could not be found.
  • No labels