Oprogramowanie wymagane:
- JDK 8 (np 8u162), http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
- Ustawiamy zmienną JAVA_HOME wskazującą na katalog zainstalowanego JDK (np C:\Program Files\Java\jdk1.8.0_162)
- IntelliJ
- PostgreSQL 9.6, https://www.postgresql.org/download/
- GIT https://git-scm.com/downloads
- zalecany również TortoiseGit, https://tortoisegit.org/download/
- Tomcat 7 (np 7.0.85), wersja zip, https://tomcat.apache.org/download-70.cgi
- Maven 3.5, https://maven.apache.org/download.cgi,
- dodajemy do zmiennej PATH na katalog bin, tak aby działał skrypt mvn
- PhantomJS - http://phantomjs.org/download.html
- należy dodać do PATH
Oprogramowanie zalecane:
- 7zip
- Notepad++
- BeyondCompare - porównywanie zmian w plikach i katalogach, skrypty backupu
- MobaXTerm - nakładka na putty, kombajn zawierający wiele funkcji obsługi protokołów sieciowych
- FastStone Capture 5.3 - tworzenie zrzutów ekranowych, edycja grafiki (strzałki, ramki itp)
Ustawienia środowiska:
- zdefiniować nazwę hosta (komputera): Właściwości systemu → Zaawansowane ustawienia systemu → Nazwa komputera → Zmień... (przydatne w logach)
Repozytorium:
Każdy użytkownik (programista) posiada swoje indywidualne konto na serwerze NextBuy. Po założeniu konta należy się na nie zalogować za pośrednictwem putty, MobaXTerm lub podobnego narzędzia i ustalić/zmienić hasło użytkownika poprzez wykonanie komendy passwd,
Następnie należy wygenerować parę kluczy ssh. W tym celu przechodzimy do katalogu domowego użytkownika (cd ~) i wydajemy komendę ssh-keygen. Hasło pozostawiamy puste. Opcjonalnie możemy sobie wygenerować klucz prywatny za pomocą putty-gen i dodać do autoryzowanych w pliku authorized_keys
- ssh://użytkownik@test.nextbuy24.com:12345/opt/git/isrm.git
- branch: version18
- Zalecane sklonowanie repozytorium bezpośrednio na przygotowaną wcześniej partycję (np RamDisk)
Git i zapamiętywanie haseł
Jeśli źle wpiszemy hasło lub je zmienimy na serwerze a środowisko ma już jakieś zapamiętane nie będzie możliwości wykonania jakichkolwiek operacji na repozytorium.
Rozwiązaniem tego problemu jest usunięcie pliku z bazą haseł IntelliJ, komenda del %USERPROFILE%\.IntelliJIdea2017.3\config\c.kdbx
Git, klucze ssh
Aby nie pojawiał się komunikat "Connecting to a new host test.nextbuy24.com:12345 that has the key 80:6d:68:1d:71:f9:fc:2d:b9:48:1d:16:69:60:1a:c0 (type ssh-rsa). Do you want to add this host to known hosts database?"
należy utworzyć katalog ".ssh" w katalogu użytkownika.
mkdir %USERPROFILE%\.ssh
Klient ssh utworzy w tym katalogu plik "known_hosts", w którym zapisane będą odciski palca serwerów.
Inicjacja, kompilacja:
- tools\bin\initialize.bat
Import projektu do IntelliJ:
- wybieramy "otwórz" (nie "import"), wskazujemy katalog
Ustawienia projektu:
- File → Project Structure :
- Project SDK: JDK8
- Project language level: 8
- Run → Edit configurations...
Konfiguracja środowiska IntelliJ:
- Słownik polski
- wypakowujemy zawartość pliku tools\IntelliJ\pl_PL.7z do C:\Program Files\JetBrains
- File → Settings → Editor → Spelling → Dictionaries → Add (zielona ikona + )
- Wskazujemy katalog C:\Program Files\JetBrains
- Kodowanie znaków:
- File → Settings → Editor → File Encodings:
- Global Encoding: UTF-8
- Project Encoding: UTF-8
- Default encoding for properties files: UTF-8
- Transparent native-to-ascii conversion: Tak
- File → Settings → Editor → File Encodings:
- Inne:
- Pokaż wskaźnik pamięci: File → Settings → Appearance & Behavior → Appearance → Show memory indicator : Tak
- Pokaż toolbara: View → Toolbar
Tuning ustawień maszyny wirtualnej środowiska:
- Help → Edit custom VM options, wklejamy poniższą zawartość, restartujemy IDE
-Xms3g -Xmx4g -XX:ReservedCodeCacheSize=1g -XX:+UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB=80 -Dsun.io.useCanonCaches=false -Djava.net.preferIPv4Stack=true -XX:+HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow
Aby debugger nie wchodził do klas springa i hibernate:
File → Settings → Build, Execution, Deployment → Debugger → Stepping → Do not step into the classes
org.springframework.cglib.proxy.*
org.springframework.aop.*
org.springframework.aop.*
org.springframework.transaction.interceptor.*
set JAVA_OPTS=%JAVA_OPTS% -server -Xms1G -Xmx2G -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=384m -XX:-UseParNewGC -XX:-UseConcMarkSweepGC -XX:+UseG1GC -XX:G1ReservePercent=20 -Djava.awt.headless=true
Szablony plików java:
Settings → Editor → Files and Code Templates
/**
@author: Imię Nazwisko
@date: ${DATE}
*/
Aby środowisko nie sugerowało automatycznego importu z niektórych pakietów:
Settings → Editor → General → AutoImport → Exclude from Import and Completion:
javax.swing
java.awt
sun.awt
javafx
Commitowanie zmian
Należy zaznaczyć opcje w sekcji Before commit:
- Reformat code
- Optimize imports
Słownik: