blob: 0f645fb326a8a6f8c979b637bceaf50d438a362b [file] [log] [blame]
Building BSF 3
--------------
BSF 3 is built with Apache Maven.
Download and install Apache Maven from http://maven.apache.org/download.html.
To build BSF 3, in the top-level BSF 3 directory use the command 'mvn'.
This will automatically download any dependency jars from remote Maven
repositories. Remote repositories may sometimes be unreliable, if you
get intermittent repository errors just try running 'mvn' again.
Other useful Maven commands are:
'mvn clean install'
- to remove old artifacts and rebuild from scratch
'mvn assembly:assembly'
- to build the src and bin distros
This requires a previous Maven 'install' or 'package'
'mvn eclipse:eclipse'
- to setup Eclipse projects for the BSF modules
'mvn deploy -Ptest-deploy -Prelease -Dgpg.skip [-DskipTests]'
- deploy artifacts to target/deploy; useful for checking that the contents are correct.
BSF requires a minimum of Java 1.4 to build
If you want to run Maven using a later version of Java
(e.g. you want to run Maven 2.2.1 or later, which requires Java 1.5)
some profiles have been set up in the top-level pom.xml.
These profiles allow the compile and test operations to run
under a different version of Java. The profiles are:
java-1.4, java-1.5, java-1.6
For example:
'mvn test -Pjava-1.4' ! test using Java 1.4
These profiles require some properties or environment variables to be set up.
See the pom.xml for details on how to do this.
Note, currently there is a bug in the BSF 3 projects setup which causes
the Eclipse projects to be created badly for the test projects when
running 'mvn eclipse:eclipse' in the BSF top-level directory. A temporary
work around is to also run 'mvn eclipse:eclipse' within each test project
directory, eg, testing\javascript or testing\ruby.
Once dependency jars have been downloaded you can use '-o' to run
Maven in offline mode which is faster, eg 'mvn -o'.
Between BSF releases the BSF build may have dependencies based
on a SNAPSHOT release. If this is the case the -U parameter
may sometimes be required to update to the latest SNAPSHOT
build of that dependency, eg. 'mvn -U'