Installing apache maven in linux(Ubuntu).

Make sure you have java installed already in you machine. You could check it running following command: java -version

You should see something like this:

$ java -version
java version "1.8.0_101"
Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)

Apache maven:

Maven is a project and build management tool which is working based on the concept called POM-Project Object Model. Maven can manage a project’s build, reporting and documentation from a central piece of information.

Maven provides developers a complete build lifecycle framework. Development teams can automate the project’s build infrastructure in less time as Maven uses a standard directory layout(see maven project directory structure.) and a default build lifecycle.

In case of multiple development teams environment, Maven can set-up the way to work as per standards in a very short time. As most of the project setups are simple and reusable, Maven makes life of developer easy while creating reports, checks, build and testing automation setups.

Maven provides developers ways to manage following:

Builds, Documentation, Reporting, Dependencies, SCMs, Releases, Distribution, mailing list

To summarize, Maven simplifies and standardizes the project build process.

To install maven in ubuntu follow the below steps:

$ sudo apt-get install maven

It will install latest maven, check the installation by running the following command:

$ mvn -version
Apache Maven 3.3.9
Maven home: /usr/share/maven
Java version: 1.8.0_101, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-8-oracle/jre
Default locale: en_IN, platform encoding: UTF-8
OS name: "linux", version: "4.4.0-45-generic", arch: "amd64", family: "unix"

You can also install by downloading the zip file from maven website and do it manually, in that case, you will have to set the environmental variable m2_home manually.

Please follow the below steps:

Visit to http://mirror.olnevhost.net/pub/apache/maven/binaries/ and check what is the latest tar.gz file.
When you want e.g. apache-maven-3.2.1-bin.tar.gz, from the command line; you should be able to simply do:

wget http://mirror.olnevhost.net/pub/apache/maven/binaries/apache-maven-3.2.1-bin.tar.gz

And then proceed to install it.
Run command above from the dir you want to extract maven to (e.g. /usr/local/apache-maven)
run the following to extract the tar:
tar xvf apache-maven-3.2.1-bin.tar.gz
Next add the env varibles such as
export M2_HOME=/usr/local/apache-maven/apache-maven-3.2.1
export M2=$M2_HOME/bin
export PATH=$M2:$PATH

Please verify the installation as:
mvn -version

There are various ways to generate XML files in java. One of the easiest ways is to use DOM DocumentBuilderFactory.

DOM provides easy APIs to create XML. You will have to create DocumentBuilder from DocumentBuilderFactory, then add all the nodes like elements, attributes, comments, text nodes.

Finally you need to transform the document in to xml using transformers(javax.xml.transform.Transformer).You can transform document to xml file or simply console output for your convenience.

The XML we need to create is “rices.xml”, it will look like below at the end:

xml

Java program to create the above XML file:

package com.mksiva.java.core;

import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.OutputKeys;

import org.w3c.dom.Attr;
import org.w3c.dom.Comment;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import java.io.File;

public class CreateXMLUsingDOM {
public static void main(String args[]){
try {
DocumentBuilderFactory theDocBuilderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder theDocBuilder = theDocBuilderFactory.newDocumentBuilder();
Document theDoc = theDocBuilder.newDocument();
// root element
Element theRootElement = theDoc.createElement("rices");
theDoc.appendChild(theRootElement);

// rice element
Element theRiceEl = theDoc.createElement("rice");
// adding attribute 'id' to 'rice' element
theRootElement.appendChild(theRiceEl);
// setting attribute to element
Attr theAttr = theDoc.createAttribute("id");
theAttr.setValue("1");
theRiceEl.setAttributeNode(theAttr);

 // Adding comment
 Comment theComment = theDoc.createComment("Rice and it's properties");		
 theRootElement.insertBefore(theComment, theRiceEl);

// name element
Element theNameEl = theDoc.createElement("name");
// adding text node
theNameEl.appendChild(theDoc.createTextNode("ponni"));
theRiceEl.appendChild(theNameEl);

// type element
Element theTypeEl = theDoc.createElement("type");
// adding text node
theTypeEl.appendChild(theDoc.createTextNode("medium-grain"));
theRiceEl.appendChild(theTypeEl);

// country element
Element theCountryEl = theDoc.createElement("country");
// adding text node
theCountryEl.appendChild(theDoc.createTextNode("India"));
theRiceEl.appendChild(theCountryEl);

// days element
Element theDaysEl = theDoc.createElement("days");
// adding text node
theDaysEl.appendChild(theDoc.createTextNode("130"));
theRiceEl.appendChild(theDaysEl);

// write the content into xml file
TransformerFactory theTransformerFactory = TransformerFactory.newInstance();
Transformer theTransformer = theTransformerFactory.newTransformer();
theTransformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4");
theTransformer.setOutputProperty(OutputKeys.INDENT, "yes");

DOMSource theSource = new DOMSource(theDoc);
StreamResult theResult = new StreamResult(new File("C:\\temp\\rices.xml"));
theTransformer.transform(theSource, theResult);

// Output to console for testing
StreamResult theConsoleResult = new StreamResult(System.out);
theTransformer.transform(theSource, theConsoleResult);

} catch (Exception e) {
e.printStackTrace();
}
}
}

To align the xml or console output to more readable pretty format, the following two options in the transformers are used. This will add 4 space indentation to each tag in the element.

theTransformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4");
theTransformer.setOutputProperty(OutputKeys.INDENT, "yes");

DOM – Document Object Model