UNPKG

pom-version-changer

Version:

Maven pom.xml versions manager. Change version of pom, parent version and dependencies.

156 lines (126 loc) 4.19 kB
#pom-version-changer Maven pom.xml version changer, dependencies´s manager, properties changer. How to install -------------- #### Node Application - Clone the repository - cd into *app* folder - change the file config.json to suit your projects. - do "npm install" to install dependencies - execute with "node pom-version-changer.js" #### Node.js dependency - check folder *app* for a sample - add as a dependecy to your project *pom-version-changer* - add a require on your script ``` var pvc = require("pom-version-changer"); ``` - Execute changes with ``` pvc.processFromFile(configFile, (argv.backup == true)); or pvc.process(data, backupOption); Data should be an object with the same structure as the JSON file ``` Why should you use it? ---------------------- If you have a lot projects that have dependencies between them and you would like to ease version management process this script should help you with it. Imagine that you have a big project with lots of subprojects and that those projects depend in some others also controlled by you. ``` Project A : version 1.2 - SubProject A.1 : version 1.2 from parent - SubProject A.2 : version 1.2 from parent - SubProject A.3 : version 1.2 from parent - SubProject A.3.1 : version 1.2 from parent Project B : version 3.0.1 : depends on A.2 - SubProject B.1 : version 3.0.1 from parent - SubProject B.2 : version 3.0.1 from parent : depends on A.2 Project C : version 2.0 : depends on A.2 : depends on B.1 : depends on B.2 ``` To control versions for these projects you would have to change each pom.xml that has a version to point to the *new* updated version. (you could use *maven update child version* for project version and use *dependecies management*, but that is not easy enough). With pom-version-changer full control over your pom.xml versions is possible. With only one file (*config.json*) projects are defined, versions are set, dependencies´s versions are configured. How to use ---------- Configuration file config.json for some projects: ``` { "paths": { "iee": "C:/wc/iee/7.6/iee-toolkit", "efa-components": "C:/wc/p2/15.6/efa-components/java", "efa-pom": "C:/wc/p2/15.6/efa-pom/" }, "projects": { "iee-toolkit": { "pom": "pom.xml", "basepath": "iee" }, "iee": { "pom": "iee/pom.xml", "parent": "iee-toolkit", "basepath": "iee" }, "iee-report": { "pom": "report/pom.xml", "parent": "iee-toolkit", "basepath": "iee" }, "iee-tutorial": { "pom": "tutorial/pom.xml", "parent": "iee-toolkit", "basepath": "iee" }, "efa-components": { "pom": "pom.xml", "basepath": "efa-components" }, "efa-dependencies": { "pom": "efa-dependencies/pom.xml", "parent": "efa-components", "basepath": "efa-components" }, "efa-pom": { "pom": "pom.xml", "basepath": "efa-pom" } }, "projects-version": { "iee-toolkit": "7.6.4", "efa-components": "15.6.4" }, "dependencies-version": { "pt.efacec.se.aut/bus-core": "8.1.1", "pt.efacec.se.aut/bus-extensions": "2.1.1", "pt.efacec.se.aut/iee": "7.6.4" }, "properties": { "currentVersion": "15.6.4", "efaDependenciesVersion": "15.6.4", "ieeVersion": "7.6.4", "ieeReport": "7.6.4" } } ``` **paths**: paths that you reference on projects by using *basepath* **projects**: define projects and parents **projects-version**: configure version for each product that you want to manage **dependencies-version**: configure dependencies version which will be updated on each project that has them defined **properties**: configure variables value to be set on each project ###Run pom-version-changer ``` node pom-version-changer.js --config=config.json --backup ``` Options __config__ and __backup__ are optional. If backup is specified a pom.xml.bak will be created.