Java Grundlagen – Block1 (Einführung in die Tool-Landschaft) – Tag 2

Hallo zusammen,
ich nehme derzeit an einer Akademie zum Java Fullstack Software Engineer teil. In den kommenden Wochen möchte ich hier meine Mitschrift, so gut es geht, aufzeichnen und mitteilen. Hier ist das, was ich vom zweiten Tag gelernt und behalten habe:

Block 01/Tag2 Einführung in die Tool-Landschaft (Eclipse, GIT/GitLab, Build-Prozess mit Maven/Gradle)

Es gibt verschidene Java Programmierungembungen (IDE - Integration Development Environment)
Eine IDE beinhaltet die Programmierungebung, Kompilier, Laufzeitumgebung, Unterstützung von Git, ….
Die einfachste IDE sind die Java Befehle auf der Konsole.

Eclipse legt Workspaces an. Das sind Verzeichnisse in denen sich mehrere Projekte befinden.

In .metadata wird alles beschrieben, was die Eclipse-Einstellungen betrifft, .z.B. die Historie. Diese Metadaten brauchen nicht zwingend mit kopiert werden, wenn man den Code weiter leitet.

In Itellij ist der Workspace einfach nur ein Verzeichnis. Die Historie steckt dort in den Repositories drin.

Projekte aus Eclipse und Intellij können ausgetauscht werden.

Gitlab

Wir erstellen auf unserem Workbench Account in Gitlab ein erstes Projekt:

Folgende Komandos werden nur sichtbar, wenn man die Readme-Datei nicht mit anlegt:

Wir legen einen SSH-Key an:

Jetzt erstellen wir unsere erste Datei (es ist die .gitlab-ci.yml Datei) in unserem Projekt auf Gitlab:

Die Datei wurde erstellt, die Pipeline läuft aber noch:

Computergenerierter Alternativtext:
Achim Mertens > Block01 -proj01 > Pipelines 
Finished 
Filter pipelines 
Status 
@ pending 
Branches 
Pipeline ID 
#2057 
I latest 
stuck 
Tags 
Triggerer 
Clear runner caches 
Q 
Duration 
In progress 
Cl lint 
Run pipeline 
Show Pipeline ID v 
Commit 
p main 5cc945ca 
Update .gitlab-ci.yml file 
Stages

(Die läuft sich hier zu Tode, weil wir keinen "Runner" erstellt haben. Aber immerhin haben wir unsere erste Datei im Projekt erstellt.)

Jetzt wird das Projekt von Gitlab auf den lokalen Rechner (bzw. Terminalserver) geholt:

Nun wird das Projekt vom Gitlab Server auf den lokalen (Terminal-)Server geholt:

Git clone [email protected]:achim.mertens_1/block01-proj01.git

Git Staging/Repository/Gitlab

Der Repository ist die Sichtweise, wie git es sieht. Es wird durch .git representiert.
Gucken ist erlaubt, aber niemals die .git-Dateien anfassen!!!

Besser:

git config -l

Unterschied Main Master:

Main ist auf dem Server, Master lokal (mit Verweis, wo der Server liegt). Beide beinhalten aber das gleiche und können sich synchronisieren.

Ich habe eine Datei in das lokale Verzeichnis kopiert. Git sieht die, hat sie aber noch nicht eingecheckt.

Mit git add wird keine "Kopie im Repository" angelegt, sondern die Datei wird "für das Repository" getaggt, es wird "gestaged, also die Bühne von Gitlab betreten.

Durch das Committen wird die Datei freigegeben für die Synchronisation mit dem Server. Es wird von der lokalen Staging auf die globale gehoben.

Erst mit git push landet die Datei auf dem Server.

Binäre Dateien brauchen nicht hochgeladen zu werden, da sie aufgrund des Java Codes reproduziert werden können. Es gibt nur unnötig Balast.

Es sollten neutrale Projekte hochgeladen werden.

Durch das Compillieren erzeugen wir den "de" Ordner mit der Unterstruktur und Java-Klasse drin. Das braucht aber nicht auf Gitlab:

Daher bauen wir uns eine .gitignore-Datei und fügen dort "de/" hinzu:

Tipp: Wenn man lokal Dateien löscht oder verschiebt, bekommt Git das nicht mit. Besser ist es, die Git-Befehle dafür zu verwenden

Hier ist eine grobe Übersicht der git Befehle und wo welche Umgebungen sind:

Eclipse

Wir starten Eclipse und legen ein neues Projekt an. Sollte Eclipse auf einen anderen Workspace zeigen, können wir diesen umswitchen:

Das sind alles Views:

Perspektiven sind Anordnungen von Views zueinander. Diese kann man wieder zurück setzten:

Build Tools:

Konvention geht vor Konfiguration. (z.B. Package Namen werden klein geschrieben - sonst gibt's Fehlermeldungen)

Ant: War zuerst da und kann Build-Scripte bauen

Maven: Hat zusaätzlich eine Struktur

Gradle: Hat so eine Art Programmiersprache für die Konfiguration

Das Ziel der Bild-Tools ist ausführbare Klassendateien zu haben:

Wir erstellen ein neues Maven Projekt:

Jetzt verbindet sich Eclipse mit Nexus und sucht nach den Archtypes:

Group-ID ist der Package Namen

Artefakt-ID ist der Name des Projektes:

Maven erzeugt eine Programmierstrukur, sowie die Konfigurationsdatei pom.xml

Wir müssen leider die pom.xml anpassen und erweitern um:

    <maven.compiler.source>11</maven.compiler.source>

    <maven.compiler.target>11</maven.compiler.target>

Weitere Links und Zusammenfassung

GitLab einrichten:

$ ssh-keygen

Generating public/private rsa key pair.
Enter file in which to save the key (/d/Benutzerdaten/Hiltrop_Klaus/.ssh/id_rsa):
Created directory '/d/Benutzerdaten/Hiltrop_Klaus/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /d/Benutzerdaten/Hiltrop_Klaus/.ssh/id_rsa
Your public key has been saved in /d/Benutzerdaten/Hiltrop_Klaus/.ssh/id_rsa.pub

cat ~/.ssh/id_rsa.pub

SSH-RSA-Schlüssel kopieren und im GitLab-Server unter den User-Profil als SSH-Key eintragen

Arbeiten mit dem Git-Client
----------------------------------
Git global setup
-----------------
git config --global user.name "Hans-Joachim Blanke"
git config --global user.email "[email protected]"

Create a new repository
--------------------------------
git clone https://aad-wbench.workbench.telekom.de/gitlab/blanke/block01-proj01.git
cd block01-proj01
git switch -c main
touch README.md
git add README.md
git commit -m "add README"
git push -u origin main

Push an existing folder
--------------------------
cd existing_folder
git init --initial-branch=main
git remote add origin https://aad-wbench.workbench.telekom.de/gitlab/blanke/block01-proj01.git
git add .
git commit -m "Initial commit"
git push -u origin main

Push an existing Git repository
----------------------------------
cd existing_repo
git remote rename origin old-origin
git remote add origin https://aad-wbench.workbench.telekom.de/gitlab/blanke/block01-proj01.git
git push -u origin --all
git push -u origin --tags


Projekt clonen (Es lokal auf unseren Rechner bringen)
-------------------------------------------------------------
01. URL [email protected]:blanke/block01-proj01.git (GITLAB)
02. GITBASH (GIT lokal) -> /c/kurse-2021/telekom-agil-2021-e-online/my-workspace/block01-git-maven-ide

  1. Clone: git clone [email protected]:blanke/block01-proj01.git


Git-Lab-Config

Global (UserVerzeichnis)
-> %HOME%/git Global Configuration (D:\Benutzerdaten\Kennung)

Lokal (Projekt)
-> Verzeichnis: .git/config

git config -l
git config --global -l
git config --system -l
git config --list --show-origin
git config --list --show-origin --show-scope







Pipeline (.gitlab-ci.yml)
---------


#.gitlab-ci.yml

stages:
- compile
- test

before_script:
# - export NO_PROXY="docker, easyng-wbench.devops.telekom.de, *.telekomcloud.com, 127.0.0.1, localhost, *.telekom.de, easyng-wbench.psst.t-online.corp, *.t-online.corp, otc-service.com, *.t-internal.com, devlab.de.tmo"
# - export HTTP_PROXY="http://proxy-vip.infrastructure.psst.t-online.corp:3128"
# - export HTTPS_PROXY=$HTTP_PROXY
- echo " Doit-Befor"
- java -version

default:
tags:
- run_shell

say-hello:
stage: test
script:
- echo "Hello"

say-world:
stage: compile
script:
- echo "World"

say-user:
stage: test
script:
- echo "Hello, $GITLAB_USER_LOGIN!"

----------

Besten Dank an unseren super Trainer:


Trainer: Hans-Joachim Blanke [email protected]

Links:
https://demo.firepad.io/#telekom-agil-2021-22-e
https://4point.de/seminar/telekom-agil-2021-22-e/

https://app.diagrams.net/
https://staruml.io/



0
0
0.000
2 comments
avatar

pixresteemer_incognito_angel_mini.png
Bang, I did it again... I just rehived your post!
Week 80 of my contest just started...you can now check the winners of the previous week!
!BEER
5

0
0
0.000