ClarkUpdike, incept: 2005-02-10
Setting up the jython development environment in Eclipse
Eclipse has a plugin to become a SVN client and can be used to get the project from the repository. It takes a few steps to set it up, but seems to work well once you do. Please correct any mistakes. (Works for Eclipse 3.1-3.2)
Installing the Subclipse plugin
Go to Help -> Software Updates -> Find and Install...
- Go to Search for new features to install
Add a new remote site: http://subclipse.tigris.org/update_1.2.x (see http://subclipse.tigris.org/callisto.html for more details)
- Install the plugin by selecting the product from the subclipse site.
Checking out the Jython project
- Switch to SVN Repository Exploring perspective
Add a new SVN repository, URL: https://jython.svn.sourceforge.net/svnroot/jython
- Select trunk/jython from the repository tree and Checkout the project using the New Project Wizard.
- Set up source folders for the project
Access the properties of <yourProjectName> (Right-click on the project and select Properties)
Click on Java Build Path and select the Source tab
Leave only <yourProjectName>/src on the build path
Set the Default output folder to <yourProjectName>/build This means Ant won't have to rebuild the compiles Eclipse makes.
- Click ok, and check for a few files that won't compile if you don't have the appropriate jars. Unless you're working on them you can just right click on those files, go to Build Path and exclude them.
org.python.util.PyServlet depends on the servlet api jar
org.python.util.ReadlineConsole depends on the java-readline jar
- com.ziclix.python.sql.handler depends on various db jars so I just exclude that package altogether.
Building the project using ANT
Anchor(ANT) At this point, you should be able to build the project using Eclipse's Java Builder. This will only compile the classes though --you'll want to use <yourProjectName>/build.xml to get the full ant build. To do this:
First, set up an ant.properties file to supply "parameters" to build.xml
Put the file directly under <yourProjectName>/. It seems like it must be in the same directory as build.xml. Eclipse seems to let you specify other locations, but I couldn't ever get it to work unless it was right along side build.xml. If anyone knows why, please add details.
- Put in info such as
build.compiler=modern debug=false #debuglevel=lines,vars,source optimize=false #javaccHome=/Users/bzimmer/Library/Java/Extras/javacc-3.2 ht2html.dir= ### zxJDBC ### #oracle.jar= #mysql.jar=/Users/bzimmer/Library/Java/Extras/mysql-connector-java-3.1.6-bin.jar #informix.jar= #postgresql.jar=/Users/bzimmer/Library/Java/Extras/pg74.215.jdbc2.jar #jdbc.jar= #servlet.jar=
- I left stuff commented out, but you can see how you can add jars, etc. using this file.
Navigate to build.xml and Right-Click and select Run | External Tools.
Select New and on the Main tab
For Buildfile:, the default of ${workspace_loc:/<yourProjectName>/build.xml} should be fine
For Base Directory:, click Browse Workspace and navigate to the <yourProjectName> directory and select it
Click on the Properties tab
Unselect the Use global properties as specified... check box
Click the Add External button and navigate to and select <yourProjectName>/ant.properties
Select Apply and Run
A successful build should output something like the following:
Buildfile: c:\workspace\JythonTip\jython\build.xml init: [echo] --- Build environment for jython --- [echo] --- Flags (Note: If the {property name} is displayed, [echo] --- then the component is not present) [echo] --- Optional Libraries --- [echo] java2 coll = true [echo] servlet = ${servlet.present} [echo] readline = ${readline.present} [echo] oracle = ${oracle.present} [echo] informix = ${informix.present} [echo] mysql = ${mysql.present} [echo] postgresql = ${postgresql.present} [echo] jndi = true [echo] jdbc = true [echo] jdbc3.0 = true dist-prepare: prepare: parser: compile: jar: [delete] Deleting: C:\workspace\JythonTip\jython\build\mainClass.mf copy-xml: copy-dist: BUILD SUCCESSFUL Total time: 2 seconds
Note that this sample was actually a re-build, so it didn't do that much (you'll see more output on the first build) and ran pretty fast (2 seconds). Also, note that I did not link in the optional "user-supply-able" jars. To do so, just add those entries to your ant.properties (look for the placeholders).
Also, you can specify the ant targets that you want to run using the Targets tab under External Tools dialog. For example, the copy-dist seems to run by default. To force a full build, check the all target.
And here is a [wiki:/JythonDeveloperGuide sample batch file (windows)] that runs the eclipse-built jython.jar If you set the default output directory to build in the Build Path setup, you can replace the jython.jar in your script with the path to build. That means after running the initial Ant build you can just rerun your Jython script and it will reflect the latest changes you've made to the java code.