Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

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}/kfs-build.properties

    User Home Locations

    • Unix: /home/username/kfs-build.properties
    • Mac OS X: /Users/username/kfs-build.properties
    • Windows XP: C:/Documents and Settings/username/kfs-build.properties
    • Windows Vista, Windows 7: C:/Users/username/kfs-build.properties
  2. ${institution.build.properties.file} (location set in the above kfs-build.properties)
  3. ${build.environment}-build.properties
  4. The build/propertiesdirectory in the kfs project. You should not generally change the properties here. Override them in one of the above files.
    • build/properties/build.properties
    • build/properties/build-foundation.properties
    • build/properties/database.properties
    • build/properties/directory.properties
    • build/properties/logging.properties
    • build/properties/batch.properties
    • build/properties/email.properties
    • build/properties/url.properties
    • build/properties/rice.properties
    • build/properties/spring.properties
    • build/properties/web.properties
    • build/properties/b2b.properties

For ease of future upgrades, you should avoid modifying any of the delivered files under the kfs directory. 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}/kfs-build.properties file.

    example institution properties reference
    institution.build.properties.file=sampleu-build.properties
    

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 continuous-integration target is intended for use within an automated testing tool like Jenkins. 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

    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.

The copies will only me made if the is.local.build property is set. When not set, the build process assumes you are building a WAR file for an already configured server. So, you will want to review the dist-local target for what gets copied. Review the table below for most of the files which are being copied.

Source

Destination

Notes

build/external/appserver/*.jar

${appserver.lib.dir}

 

${drivers.directory}/*.jar

${appserver.lib.dir}

 

build/log4j*.jar${appserver.lib.dir}Only if the p6spy is enabled (i.e. the use.p6spy.local property is set)

build/external/appserver/carol.properties

${appserver.classes.dir}

 

build/external/appserver/context.xml

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

 

build/external/work/*

${external.work.directory}

 

build/external/log4j.properties

${settings.directory}

 

build/external/security.properties

${security.directory}

 

build/external/rice.keystore

${security.directory}

Note: you should never use this delivered file in a production environment.

The dist-external target will generate three files containing external dependencies that can be unpacked on a server:

FileDestinationNotes
settings.zip${settings.directory}contains log4j.properties
security.zip${security.directory}contains rice.keystore and security.properties
skel.zip${external.work.directory}contains the base structure for the external dependencies/directory structure

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

build/project/configuration.properties

work/src

build/project/spy.properties

work/src

build/project/OJB.properties

work/src

build/project/OJB-logging.properties

work/src

build/project/OJB-repository.xml

work/src

build/project/web.xml

work/web-root/WEB-INF

build/project/help.zip

work/web-root/static/help

build/project/xsd/*

work/web-root/static

build/external/appserver/rice-web-*.war (JSP/TAG portions)

work/web-root

build/external/appserver/rice-web-*.war (JAR files)

build/rice-lib

build/rice-lib
build/kfs-lib

work/web-root/WEB-INF/lib

 

 

Kuali documentation is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License. 

Kuali software is licensed for use pursuant to the Affero General Public License, version 3.

 Copyright © 2014 Kuali, Inc. All rights reserved. 

Portions of Kuali are copyrighted by other parties as described in the Acknowledgments screen. 

Kuali ® is a registered trademark of the Trustees of Indiana University.

  • No labels