public
Description: simple config and logging setup for scala
Homepage: http://www.lag.net/configgy
Clone URL: git://github.com/robey/configgy.git
configgy / ant
name age message
..
file README.txt Loading commit data...
file bootstrap.xml Thu May 14 15:19:30 -0700 2009 update scala-build. [robey]
file clean.xml Tue Nov 18 19:41:43 -0800 2008 update build system. [robey]
file compile.xml Sat Jul 18 22:33:42 -0700 2009 some scala-build updates. [robey]
file docs.xml Thu Jan 08 23:03:17 -0800 2009 update build files. [robey]
file package.xml Mon Aug 17 17:39:58 -0700 2009 fix for maven compat. [robey]
file prepare.xml Sat May 23 21:38:11 -0700 2009 fix up build scripts. [robey]
file test.xml Sat May 23 21:38:11 -0700 2009 fix up build scripts. [robey]
ant/README.txt
Folder layout:
  src/  -- source code
    main/
      scala/
      java/
      jni/
      thrift/
      resources/  -- files to copy into dist
    test/
      scala/
      resources/  -- files needed only for tests
    scripts/
  ivy/
    ivy.xml  -- package description
    ivysettings.xml  -- repositories
  config/  -- items to package in the distribution but not in jars

Created during the build:
  target/  -- compiled files
    classes/
    test-classes/
      resources/  -- copied from src/test/resources/
    gen-java/  -- generated from thrift
    scripts/
  dist/
    <package>-<version>/
      <package>-<version>.jar
      *.so  -- if jni stuff was compiled
      *.jnilib  -- if jni stuff was compiled
      libs/  -- dependent jars (and any extra)
      config/  -- copied over from config/
      resources/  -- from src/main/resources/


... tbd ...

Primary targets
---------------
  - clean
    - erase all generated/built files
  - distclean
    - clean *everything*
  - prepare
    - resolve dependencies and download them
  - compile
    - build any java/scala source
  - test
    - build and run test suite (requires e:testclass)
  - stress
    - (optional) run stress test suite (requires e:stresstestclass)
  - docs
    - generate documentation
  - package
    - copy all generated/built files into distribution folder
      (requires "local" repo)


Properties that can change behavior
-----------------------------------

- skip.download
    don't download ivy; assume it's present
- skip.test
    don't run test suite
- skip.docs
    don't build docs
- libs.extra
    any extra files to copy into dist/<p>/libs/ during compile
- dist.extra
    any extra files to copy into dist/<p> during compile
- config.extra
    any extra files to copy into config/ during compile
- pack.deps
    pack dependent jars into the final dist jar, to remove dependencies


Extra ivy thingies
------------------

- e:buildpackage
    causes a build.properties file to be created in the named package
    (stores version #, etc -- used by RuntimeEnvironment in configgy)
- e:thriftpackage
    output package for generated thrift classes; causes thrift DDLs to be
    compiled
- e:testclass
    class to execute for unit tests -- required, in order to run tests
- e:stresstestclass
    class to execute for stress tests (optional)
- e:jarclassname
    creates an executable jar with this as the main class name


JNI
---

JNI will be built if there appears to be a `build.xml` file in src/main/jni/.
That ant file should contain a "clean" target and a "compile" target.

Post-compile, the jni/ folder is expected to look like this:
  src/
    main/
      jni/
        build.xml  -- used to build the jni packages
        <package>/
          target/
            *.so  -- copied into dist/<p>/
            *.jnilib  -- copied into dist/<p>/
            *.jar  -- copied into dist/<p>/

There may be as many <package> folders in jni/ as you desire.