I have recently agreed to take over development of the JSLint plugin for my favourite editor, jEdit.
To start developing I decided to build jEdit and its plugins from source, which wasn’t as easy as I would have expected (thanks to deffbeff for some pointers). A few small changes to the setups for the plugins would make it much easier – at some point I may try to help out there, but for now, here is how I built jEdit and the set of plugins I use regularly:
sudo apt-get install openjdk-6-jdk ant git-core subversion cd ~/code/public mkdir jedit cd jedit svn co https://jedit.svn.sourceforge.net/svnroot/jedit/jEdit/trunk jEdit cd jEdit; ant; cd .. mkdir plugins
Now I made a file inside plugins called build.properties which looked like this:
install.dir = ../../jEdit/build/settings/jars jedit.plugins.dir = ../../jEdit/build/settings/jars jedit.install.dir = ../../jEdit/build build.support = ../build-support
And then continued like this:
cd plugins svn co https://jedit.svn.sourceforge.net/svnroot/jedit/build-support/trunk build-support svn co https://jedit.svn.sourceforge.net/svnroot/jedit/plugins/ErrorList/trunk ErrorList svn co https://jedit.svn.sourceforge.net/svnroot/jedit/plugins/CommonControls/trunk CommonControls svn co https://jedit.svn.sourceforge.net/svnroot/jedit/plugins/InfoViewer/trunk InfoViewer svn co https://jedit.svn.sourceforge.net/svnroot/jedit/plugins/Console/trunk Console svn co https://jedit.svn.sourceforge.net/svnroot/jedit/plugins/BufferList/trunk BufferList svn co https://jedit.svn.sourceforge.net/svnroot/jedit/plugins/FindFile/trunk FindFile svn co https://jedit.svn.sourceforge.net/svnroot/jedit/plugins/GnuRegexp/trunk GnuRegexp svn co https://jedit.svn.sourceforge.net/svnroot/jedit/plugins/OpenIt/trunk OpenIt svn co https://jedit.svn.sourceforge.net/svnroot/jedit/plugins/RecentBufferSwitcher/trunk RecentBufferSwitcher svn co https://jedit.svn.sourceforge.net/svnroot/jedit/plugins/Sessions/trunk Sessions svn co https://jedit.svn.sourceforge.net/svnroot/jedit/plugins/WhiteSpace/trunk WhiteSpace svn co https://jedit.svn.sourceforge.net/svnroot/jedit/plugins/ScriptEnginePlugin/trunk ScriptEnginePlugin svn co https://jedit.svn.sourceforge.net/svnroot/jedit/plugins/JavascriptScriptEnginePlugin/trunk JavascriptScriptEnginePlugin git clone git://jedit.git.sourceforge.net/gitroot/jedit/ProjectViewer git clone git://github.com/andybalaam/jslint-plugin-for-jedit.git jslint cd ErrorList; ant; cd .. cd CommonControls; ant; cd .. cd InfoViewer; ant; cd .. cd ProjectViewer; ant; cd .. cd Console; ant; cd .. cd BufferList; ant; cd .. cd FindFile; ant; cd .. cd GnuRegexp; ant; cd .. cd OpenIt; ant; cd .. cd RecentBufferSwitcher; ant; cd .. cd Sessions; ant; cd .. cd WhiteSpace; ant build; cd .. cd ScriptEnginePlugin; ant; cd .. cd JavascriptScriptEnginePlugin; ant; cd .. cd jslint; ant; cd ..
To find out the dependencies of all plugins and therefore what order to build them, I did this:
find ./ -name "*.props" | xargs grep "depend.*plugin"
Surely something should do this for me automatically?
The problem I haven’t solved yet is that the FTP plugin requires JUnit. I could have copied the junit.jar into the jars dir and I think it would have worked, but I want to do it “properly”…
Finally, I made a .desktop shortcut file in ~/.local/share/applications/jedit.desktop like this:
[Desktop Entry] Name=jEdit GenericName=Programmer's Text Editor Comment=Edit text files Exec=java -jar /home/andy/code/public/jedit/jEdit/build/jedit.jar -settings=/home/andy/code/public/jedit/jEdit/build/settings %U Icon=/home/andy/code/public/jedit/jEdit/doc/jedit.png Terminal=false Type=Application Categories=Development;TextEditor; StartupNotify=true MimeType=text/plain; StartupWMClass=org-gjt-sp-jedit-jEdit
Which enabled me to run the jEdit I had built from my system menu.
Note that I am running jEdit under OpenJDK because Sun/Oracle Java is annoying to get hold of at the moment, and generally somewhat evil. Thanks Oracle for killing Java. jEdit does not work brilliantly with OpenJDK, which is frustrating. Maybe I’ll try to fix it?
Note on a Lucid machine I had to uninstall Eclipse and install the ant 1.8 packages for Natty by manually downloading from here: https://launchpad.net/~eclipse-team/+archive/debian-package/+packages
I’m curious if anyone who uses jedit from source, ever got jEdit to build from inside either netbeans or eclipse? I can get jEdit to build from the command line directly with ant but it seems that jedit’s project structure and both Netbeans and Eclipse’s features to import a java project from existing sources or using an existing ant build.xml are seriously limited in ways that prevents them from working at all with the jedit sources.
I asked a question about netbeans+jedit here:
http://stackoverflow.com/questions/15693837/how-can-i-create-a-netbeans-7-3-project-wrapping-the-jedit-source-code
Netbeans even has a wiki page addressing this very subject, but like all things, it’s out of date and no longer works. (UI changes in Netbeans UI especially around how it works with existing Java projects have rendered Netbeans 7.3 less functional in this area than earlier versions, it seems.)
Warren
Hi Warren, I haven’t tried this I’m afraid.