====== Continuous integration ======
* Apache Ant
* Apache Maven
* Gradle
* Jenkins
===== Apache Ant =====
http://ant.apache.org
build.xml
===== Apache Maven =====
Buildovací nástroj.
http://maven.apache.org
==== Maven central repository ====
Obsahuje JAVA knihovny různých verzí (i zdrojové kódy a dokumentace).
http://search.maven.org/
==== Fáze ====
* **validate** - kontrola projektu\\
* **compile** - kompilace zdrojových kódů projektu\\
* **test** - unit testy\\
* **package** - zabalení do JAR nebo WAR\\
* **integration-test** - integrační testy\\
* **verify** - ověřění balíčku\\
* **install** - instalace balíčku do lokální repository, závislosti pro jiné lokální projekty\\
* **deploy** - nasazení
==== Vytvoření projektu ====
shell# mvn archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DgroupId=cz.isn.testapp -DartifactId=testapp
==== Struktura projektu ====
testapp
|-- pom.xml
`-- src
|-- main
| `-- java
| `-- cz
| `-- isn
| `-- testapp
| `-- App.java
`-- test
`-- java
`-- cz
`-- isn
`-- testapp
`-- AppTest.java
==== Konfigurační soubor ====
**POM** = Project Object Model
4.0.0
cz.isn.testapp
testapp
jar
1.0-SNAPSHOT
testapp
http://maven.apache.org
UTF-8
junit
junit
3.8.1
test
* **modelVersion** = verze konfiguračního souboru XML pro maven\\
* **groupId** = skupina\\
* **artifactId** = název projektu\\
* **packaging** = JAR, WAR, EAR, ...\\
* **version** = verze projektu\\
* **name** = název projektu (dokumentace)\\
* **url** = odkaz na projekt (dokumentace)\\
* **description** = popis projektu (dokumentace)\\
* **dependecies** = závislosti\\
* a další -> [[http://maven.apache.org/ref/3.1.0/maven-model/maven.html|reference for the Maven project descriptor]]
==== IDE NetBeans ====
**File** -> **New Project** -> Categories: **Maven** -> Projects: **Java Application**
==== Instalace na CentOS 6 ====
**Stažení a rozbalení balíku**
shell# mkdir /opt/ci
shell# cd /opt/ci
shell# wget -c -t 0 http://mirror.hosting90.cz/apache/maven/maven-3/3.1.0/binaries/apache-maven-3.1.0-bin.tar.gz
shell# tar xvzf apache-maven-3.1.0-bin.tar.gz
**Vytvořit konfiguraci pro path**
# maven path
export MAVEN_HOME=/opt/ci/apache-maven-3.1.0
export PATH=${MAVEN_HOME}/bin:${PATH}
**Odhásit, přihlásit a otestovat**
shell$ mvn -version
Apache Maven 3.1.0 ...
Maven home: /opt/ci/apache-maven-3.1.0
Java version: 1.6.0_45, vendor: Sun Microsystems Inc.
Java home: /opt/java-jboss/jdk1.6.0_45/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "2.6.32-042stab078.28", arch: "amd64", family: "unix"
==== Instalace na Windows 7 ====
- rozbalit **apache-maven-3.1.0-bin.zip** např. do **C:\work\JAVA\ci\apache-maven-3.1.0**
- **Ovládací panely** -> **Upřesnit nastavení systému** -> **Upřesnit** -> **Proměnné prostředí** -> **Nová...**
* **Název proměnné:** MAVEN_HOME
* **Hodnota proměnné:** C:\work\JAVA\ci\apache-maven-3.1.0
- **Upravit...** proměnná **PATH** a přidat
* ;%MAVEN_HOME%\bin
- otestovat funkčnost
* C:\Users\blazek>mvn -version
Apache Maven 3.1.0 ...
Maven home: C:\work\JAVA\ci\apache-maven-3.1.0\bin\..
Java version: 1.6.0_45, vendor: Sun Microsystems Inc.
Java home: C:\Program Files\Java\jdk1.6.0_45\jre
Default locale: cs_CZ, platform encoding: Cp1250
OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows"
===== Gradle =====
http://www.gradle.org
build.gradle
===== Jenkins =====
http://jenkins-ci.org/