A highly usable CFCompile script for Windows and UNIX systems.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



I created a *nix script and a Windows script that mimics cfcompile. The primary benefit of my scripts is that you pass all the parameters needed by cfcompile instead of having to edit the script files. The secondary benefits are that 1) cfcompile.sh is not actually included in all Linux installers, 2) cfcompile doesn't work as documented, 3) cfcompile doesn't work all the time.

This is the simple and rough project. This project is part of a bigger project that I'm working on documenting.

Most of this documentation comes from my Ant build. If you're unfamiliar with it, then I'm sorry. I'll work on this documentation later this week.

Expected Directory Structure

{sProjectName}_app  *
-   package
-   src *
    -   ColdFusion
        -   app **
        -   app-compiled    **
        -   CFIDE
        -   lib
        -   WEB-INF
    -   {sProjectName}

*   Directory name is not referenced
**  Directory is built and destroyed by Ant

Quick Setup Steps

-   Create new ColdFusion instance.
-   Don't add source code.
-   Configure CFIDE as desired.
-   Copy CFIDE to {sProjectName}_app/src/ColdFusion
-   Copy jrun.jar to {sProjectName}_app/src/ColdFusion/lib
-   Create new J2EE Package (EAR) in new instance with {sProjectName}. If you did anything besides giving it a name and serial number, then compare the makeWAR target with the Ant script generated by ColdFusion at /WEB-INF/cfusion/packages/{sProjectName}/build.xml
-   Copy WEB-INF to {sProjectName}_app/src/ColdFusion
-   Put cfcompile-pass-all.bat and cfcompile-pass-all.sh in {sProjectName}_app/src/ColdFusion/WEB-INF/cfusion/bin (These files use findjava.bat & findjava.sh)


Place build.xml inside {sProjectName}_app/src/{sProjectName}


Run ant getProperties to verify file paths.

CFIDE Special Note

There's a section in makeWAR to includes or excludes the CFIDE. I've left it include for this example. I like to run internet facing apps with the CFIDE excluded.

LINUX Special Note

I found Linux had problems finding Java or finding the wrong Java. I added an additional parameter to cfcompile-pass-all to override the Java path used. This works better if you find the Java path you want to use and set the {sJavaPath} property.


Directories must not contain spaces. Create symbolic links if needed (Windows too).

    For Example:
        cd  C:\Users\bmoore
        mklink /D MyProjects "C:\Users\bmoore\My Projects"

http://en.wikipedia.org/wiki/NTFS_symbolic_link http://en.wikipedia.org/wiki/Symbolic_link

The relative locations are built by invocation path, so to work properly, I do something like this:

    cd  C:\Users\bmoore\MyProjects\{sProjectName}_app\src\{sProjectName}