README ====== This is a template project structure for a JOSM plugin. Layout ====== +--- src source of your plugin |- images images your plugin needs |- resources resources your plugin needs README README for your plugin GPL-v2.0.txt GPL version 2 license text GPL-v3.0.txt GPL version 3 license text README.template this file Build ===== A JOSM plugin is built as a single jar. We use ant to build. See build.xml in this directory and update the plugin specific properties in the configuration section. To get an command overview run > ant help To build the plugin run > ant dist To install the generated plugin locally (in you default plugin directory) run > ant install The generated plugin jar is not automatically available in JOSMs plugin configuration dialog. You have to check it in first. Use the ant target 'publish' to check in the plugin and make it available to other JOSM users: set the properties commit.message and plugin.main.version and run > ant publish Maintaining versions ==================== There are two versions maintained with each plugin: 1) the main version This is the lowest JOSM version required by this plugin. You have to manually set the plugins main version in the build script. Set the property plugin.main.version in build.xml accordingly. 2) the build version The build version is unique for every build of the plugin. It is equal to the SVN revision of your plugin directory. Both the main version and the build version are included in properties of the plugins manifest: Plugin-Version the build version Plugin-Mainversion the main version JOSM automatically detects whether a plugin needs to be upgraded. It compares the build version of the currently installed plugin jar with the build version of the plugin jar in the SVN. The main version is irrelevant for this process. Making your plugin available to JOSM users =========================================== When a plugin jar is checked into SVN a script updates the plugins list on the JOSM wiki: https://josm.openstreetmap.de/wiki/Plugins JOSM retrieves the list of available plugins and their build versions from this list. commit publish read meta data meta data Build ==> SVN =======> JOSM Wiki <======= JOSM ^ ================================== fetch current plugin jar Note that you have to manually publish (commit) your plugin jar. There is no nightly build in place. Everything else (pulishing meta data, updating plugins in the client) is then handled by automatic processes. See also ======== * Developing Plugins https://josm.openstreetmap.de/wiki/DevelopersGuide/DevelopingPlugins * List of JOSM Plugins https://josm.openstreetmap.de/wiki/Plugins