NAME
Java::Build - a family of modules which you can use instead of Ant
SYNOPSIS
use Java::Build::JVM; # access to the javac compiler in one jvm
use Java::Build::Tasks; # some helpful methods similar to Ant tasks
my $source_files = build_file_list(
BASE_DIR => $some_path,
INCLUDE_PATTERNS => [ qr/\.java$/ ],
);
my $dirty_sources = what_needs_compiling(
SOURCE_FILE_LIST => $source_files,
);
if (@$dirty_sources) {
my $compiler = Java::Ant::JVM->getCompiler();
$compiler->destination($base_dir);
$compiler->classpath($base_dir);
$compiler->compile($dirty_sources);
my $class_files = build_file_list(
BASE_DIR => $some_path,
INCLUDE_PATTERNS => [ qr/\.class$/ ],
EXCLUDE_PATTERNS => [ qr/Test/ ],
EXCLUDE_DEFAULTS => 1,
STRIP_BASE_DIR => 1,
);
jar(
JAR_FILE => $jar_file_name,
FILE_LIST => $class_files,
BASE_DIR => $some_path,
);
}
ABSTRACT
This family of modules helped me move away from Ant to a proper scripting
language, namely Perl. With it you can use a single JVM for compiling
your java programs. It provides many useful methods to help you build
lists of files, package them with jar etc. Currently the modules are
unix centric. If you make them work elsewhere, please send in patches.
DESCRIPTION
With the modules in this distribution, you can aviod Ant. This gives you the following benefits:
Variables instead of properties.
Flow of control structures.
The ability to write functions.
Cleaner build files (you don't have to code in XML)
All the other benefits of Perl (CPAN, regexes, etc.)
EXPORT
build_file_list what_needs_compiling jar signjar
SEE ALSO
You will need to install recent versions of Inline and Inline::Java. See Java::Build::JVM and Java::Build::Tasks for more details about their methods.
REQUIRES
Inline
Inline::Java
Carp;
File::Find;
Cwd;
File::Temp;
Exporter;
AUTHOR
Phil Crow, <philcrow2000@yahoo.com<gt>
COPYRIGHT AND LICENSE
Copyright 2003 by Phil Crow
This library is free software; you can redistribute it and/or modify it under the same terms as Perl 5.8.0 itself.