💻
Cheet Sheets
  • 🦁Başlarken
  • 🟧DevOps Pre-Requisite
    • ❤️Why Linux? | Linux Basics #1
    • 💛Vi Editor | Linux Basics #2
    • 💙Basics Commands | Linux Basics #3
    • 🧡Package Managers | Linux Basics #4
    • 💚Services | Linux Basics #5
    • 💛Networking Basics
    • 🤎DNS Basics
    • 🩶Applications Basics
    • 🟨Java introduction
    • 🟩NodeJS Introduction
    • 🟦Python Introduction
    • 🟪GIT Introduction
    • 🟧Apache Web Server Introduction
    • ⬛Apache Tomcat
    • 🟫Python Flask
    • 🟥Node.js Express App
    • 🟨Databases
    • 🟩MySQL
    • 🟪MongoDB
    • 🟨SSL & TLS
    • 🟦YAML & JSON - JSON Path
    • ⬛Labs Resources
  • 🍎Kubernetes
    • 🍏Kubernetes: Nedir ?
    • 🍒Bileşenler
    • 🍵Kubectl ve Versiyon
    • ❤️Pod
    • 🏷️Label ve Selector
    • 🔎Annotation
    • 📲Namespaces
    • 📦Deployments
    • 🔁ReplicaSet
    • 🔙Rollout & Rollback
    • 🌐Networking - 1
    • 🌏Service
    • 🛠️Liveness Probe & Readiness Probe
    • 🥐Resource Limits
    • 💰Environment Variables
    • 📃Ephemeral Volumes
    • 🔑Secrets
    • 🌂ConfigMap
    • 🖥️Node Affinity
    • 🔌Pod Affinity
    • ✍️Taint and Toleration
    • 🔦DaemonSet
    • 🧀PV/PVC
    • 🌜Storage Class
    • 🗿StatefulSet
    • 🕹️Job & Cronjob
    • 🔐Authentication
    • 📏Role-based access control (RBAC)
    • 🈷️Service Account
    • 📈Ingress
    • 📂ImagePullPolicy & ImageSecret
    • 📖Static Pods
    • 🌐Network Policy
    • 🫐Helm Nedir?
    • 📽️Prometheus Stack - Monitoring
    • 💼EFK Stack - Monitoring
    • 🥳CRD & Operator
  • 🧑‍⚕️GIT & GITHUB
    • 👉Girizgah
    • 🌴Branch
    • 🤝Merge
    • 🤔Conflict - Rebase
    • 🇸🇴Alias
    • 🛑Gitignore
    • 🥢Diff
    • ◀️Checkout
    • 🔦Stash
    • 👉Other
  • ☁️AWS
    • 🪣S3
    • 🚙EC2
    • ⚖️ELB
    • 🤝Auto Scaling
    • 🗄️EFS
    • 🔐VPC
    • 🎆CloudFront
    • ❤️Route53
    • 🦈RDS
    • 🏢ElastiCache
    • 🔭CloudWatch
    • 👀CloudTrail
    • 📃CloudFormation
    • 🔕SNS
    • 📬SQS
    • 🎇SWF
    • 📧SES
    • 📦Kinesis
    • 📐AWSConfig
    • 👩‍🏭OpsWork
    • 🚀Lambda - Api Gateway
    • 📌ECS - EKS
    • 🔑KMS
    • 📂Directory Service
    • 🏐Snowball
    • 💾Storage Gateway
    • 💽Volume Gateway
    • 📼Tape Gateway
    • 🏠Organizations
    • 🔙Backup-Transfer-CloudShell
    • 🆔IAM
    • 📀DataSync
    • 🗃️FSx
    • 🎒Aurora Serverless
    • 🌐Global Accelerator
    • 💪HPC
    • 🎰Outposts
    • 🗼Others
  • 👨‍🔬Ansible
    • 👉Girizhah
    • 📔YAML
    • ⚙️Komponentler
    • 🎒Inventory
    • 🏑ad-hoc
    • ▶️Playbook
  • 👨‍⚕️PROMETHEUS
    • 📈Terminoloji
    • 🦯Ubuntu 20.04 Prometheus Kurulum
    • 🗒️prometheus.yml dosyasına ilk bakış:
    • 🧭promQL up query
    • 📇Exporters
    • 🔦promQL Data Types
    • 🦯Selectors & Matchers
    • 🔢Binary Operators
    • 💀ignoring and on
    • ✍️Aggregation Operators
    • 🧠Functions
    • 🖊️Alıştırma
    • 💻Client Libraries
    • 🐍Examining the data of our Python application
    • 🐐Examining the data of our GO application
    • ⏺️Recording Rules
    • 💡rate functions
    • ⏰Alerting
    • ⌚Alert Routing
    • ⏰Slack integration with Prometheus
    • 🤯PagerDuty integration with Prometheus
    • ◼️BlackBox exporter
    • 📍Push Gateway
    • 🪒Service Discovery
    • 🧊kube cadvisor with external prometheus
    • 👉aws with prometheus
    • ☁️CloudWatch Exporter
    • 👨‍🚒mysql exporter
    • 🛃Custom exporter with Python
    • ⚙️Prometheus with HTTP API
    • 🤖Prometheus Federation For Kubernetes
    • 📺Grafana
    • ⁉️Prometheus: Ne zaman kullanılmalı? Ne zaman kullanılmamalıdır?
  • 🍪Sheets
    • 🛳️Docker Sheets
    • 🐐Kube Sheets
  • 🔢12 Factor APP
    • 🏗️Introduction
    • 1️⃣Codebase
    • 2️⃣Dependencies
    • 3️⃣Concurrency
    • 4️⃣Processes
    • 5️⃣Backing Services
    • 6️⃣Config
    • 7️⃣Build, release, run
    • 8️⃣Port binding
    • 9️⃣Disposability
    • 🔟Dev/prod parity
    • 🕚Logs
    • 🕛Admin processes
  • ☁️Azure 104
    • 👨‍👨‍👧‍👧Azure Active Directory ( Entra ID )
    • 💰Subscriptions
    • 🌎Virtual Network (VNET)
    • 💻Virtual Machines
    • 🧑‍🌾Load Balancing
    • 🥍Network Advanced
    • 🪡Automating Deployment and Configuration
    • 💂Securing Storage
    • 📓Administering Azure Blobs and Azure Files
    • 🔧Managing Storage
    • 🎁App Service
    • 🛳️Azure Container
    • 🥇Backup And Recovery
    • 🪐Network Watcher
    • ⏰Resource Monitoring And Alerts
  • ⛅AZURE 305
    • 🆔identity and access management
    • 💼Desing Azure AD (Entra ID)
    • 👨‍💼Desing for Azure B2B
    • 🛃Desing for Azure B2C
    • 💳Design for MFA and Conditional Access
    • ⛑️Design for Identity Protection
    • 🚶Access Reviews
    • 🚦Managed identity Demostration
    • 🔐Key Vault Demostration
    • 👑Governance hierarchy
    • 💠Design for Management Groups
    • 🔑Desing for Subscriptions
    • 🍇Desing for resource groups
    • 📟Design for resource tags
    • 🚷Azure Policy & RBAC
    • 🫐Desing For Blueprints
    • 🪡Desing for Virtual Networks
    • 🛫Design for on-premises connectivity to Azure
    • 🔽Design for network connectivity
    • 📦Design for application delivery
    • 🥞Design for network security and application protection
    • 📕Choose a compute solution
    • 🌊Design for virtual machines
    • 🔋Azure Batch Demostration
    • 🛰️Design for Azure App Service
    • ⛲Design for Azure Container Instances
    • 🎢Design for Azure Kubernetes Service
    • 📠Azure Functions Demostration
    • 💪Azure Logic Apps Demostration
    • 🧑‍💼Design for data storage
    • 🎞️Design for Azure storage accounts
    • 🌟Choose the storage replication
    • 📹Azure blob storage - Lifecycle & immutable demo
    • 🥌Azure Files Demostration
    • 🕸️Design Azure disks
    • 🦼Design for storage security
    • 🔮Azure Table Storage And Cosmos DB Demostration
    • 🟧Azure SQL Solutions
    • 🎡Azure SQL Database - Purchasing models
    • 🕯️Database availability
    • 📜Data security strategy
    • 🧮Azure SQL Edge
    • 🚲Azure Data Factory
    • 🔅Azure Data Lake Storage
    • 🧘‍♂️Azure Databricks
    • 🎒Azure Synapse Analytics
    • 🅰️Azure Stream Analytics
    • 📼Data flow strategy
    • 🍥Cloud Adoption Framework
    • ☣️Azure Migration Framework
    • 🦿Assessing workloads
    • 🪡Migration tools
    • 🤖Azure Database migration
    • 👥Storage migration
    • 👜Azure Backup
    • ⏲️Azure Blob Backup and Recovery
    • 💈Azure files backup and recovery
    • 🎞️Azure VM backup and recovery
    • 🧺Azure SQL backup and recovery
    • ⏰Azure Site Recovery
    • 📩Differentiate event and message
    • ✈️Azure messaging solutions
    • 🚜Event Hub
    • 🥍Application optimization solution
    • 🎁Application lifecycle
    • 📺Azure Monitor
    • 🅱️Log Analytics
    • 👥Azure workbooks and Insights
    • 🚌Azure Data Explorer
  • Github Actions
    • Github Actions Nedir?
    • Workflow & Schedule Triggers
    • Single and Multiple Events
    • Manuel Events
    • Webhook Events
    • Conditional Keywords For Steps
    • Expressions - 1
    • Expressions - 2
    • Runners
    • Workflow Commands
    • Workflow Context
    • Dependent Jobs
    • Encrypted Secrets
    • Configuration Variables
    • Default & Custom Env Varb
    • Set Env Varb with Workflow Commands
    • Github Token Secret
    • Add Script to workflow
    • Push Package #1
    • Push Package #2 Docker
    • Service Containers
    • Routing workflow to runner
    • CodeQL Step
    • Caching Package and Dependency Files
    • Remove workflow Artifact
    • Workflow Status Badge
    • Env Protection
    • Job Matrix Configuration
    • Disable & Delete Workflows
    • Actions type for Action
    • Inputs and Outputs for actions
    • Action Versions
    • Files and Directories for Actions
    • Exit Codes
    • Reusable Workflow & Reuse Templates for Actions and Workflows
    • Configure Self Hosted Runners for Enterprise
  • Loki
    • What is Loki?
    • Architecture of Loki
    • Install Loki For Ubuntu
    • Install Promtail For Ubuntu
    • Querying Logs
    • Loki in Kubernetes
    • Deploying Loki in Kubernetes
    • Connecting to Grafana
    • Viewing Kubernetes logs
    • Promtail Customize & Pipeline
  • Ansible
    • Ansible Introduction
    • Introduction to Ansible Configuration Files
    • Ansible Inventory
    • Inventory Formats
    • Ansible Variables
    • Variable Types
    • Registering Variables and Variable Precedence
    • Variable Scoping
    • Magic Variables
    • Ansible Facts
    • Ansible Playbooks
    • Verifying Playbooks
    • Ansible lint
    • Ansible Conditionals
    • Ansible Conditionals based on facts, variables, re-use
    • Ansible Loops
    • Ansible Modules
    • Introduction to Ansible Plugins
    • Modules and Plugins Index
    • Introduction to Handlers
    • Ansible Roles
    • Ansible Collections
    • Introduction to Templating
    • Jinja2 Templates for Dynamic Configs
  • 🅰️Ansible Advanced
    • Playbook run options
    • Facts
    • Configuration files
Powered by GitBook
On this page
  • Java Development Kit (JDK) Nedir?
  • Build,
  • Java Virtual Machine (JVM),
  • Package,
  • Document,

Was this helpful?

  1. DevOps Pre-Requisite

Java introduction

Java, 1995 yılında Sun Microsystems (şu anda Oracle Corporation tarafından sahiplenilmiştir) tarafından geliştirilen yüksek seviyeli, sınıf tabanlı, nesne yönelimli bir programlama dilidir.

  • Java, ücretsiz olarak sunulmaktadır. Geliştiriciler, Java Development Kit (JDK) ve diğer araçları ücretsiz olarak indirip kullanabilirler.

  • Java, açık kaynaklı bir dildir. Bu, geliştiricilerin Java'nın kaynak koduna erişebileceği ve kendi ihtiyaçlarına göre değiştirebileceği anlamına gelir. Açık kaynak topluluğu, Java'nın gelişimine aktif olarak katkıda bulunur.

  • Java, dünya çapında geniş bir topluluğa sahiptir. Bu topluluk, Java'nın sürekli gelişimine ve desteklenmesine katkıda bulunur. Çeşitli forumlar, kullanıcı grupları ve etkinlikler, Java geliştiricilerinin bilgi ve deneyim paylaşmasını sağlar.

Java'nın çeşitli sürümleri,

  • Java 13: 2019

  • Java 12: 2019

  • Java 11: 2018

  • Java 10: 2018

  • Java 9: 2017

  • Java 8: 2014

  • Java 7: 2011

  • Java 6: 2006

  • Java 5: 2004

Bu sürümler, Java'nın sürekli olarak güncellenen ve geliştirilen bir dil olduğunu gösterir. Her yeni sürüm, dildeki iyileştirmeleri, yeni özellikleri ve performans artışlarını içerir. Java'nın sürekli güncellenmesi, onu güvenilir ve sürdürülebilir bir dil yapar.

Java, platform bağımsızlığı (bir kez yaz, her yerde çalıştır), güvenlik ve taşınabilirlik gibi özellikleriyle bilinir. Bu özellikler, Java'nın geniş bir yelpazede uygulamalar geliştirmek için kullanılmasını sağlar, örneğin web uygulamaları, mobil uygulamalar, masaüstü uygulamaları ve büyük ölçekli kurumsal sistemler.

Java Development Kit (JDK) Nedir?

JDK, Java uygulamaları geliştirip çalıştırmak için gereken araçları içeren bir yazılım geliştirme kitidir. Üç ana bileşeni vardır: Develop (Geliştirme), Build (Derleme) ve Run (Çalıştırma).

Geliştirme (Develop):

  • jdb: Java Debugger, Java programlarını hata ayıklamak için kullanılır.

  • javadoc: Java kodu için otomatik olarak API dokümantasyonu oluşturur.

Derleme (Build):

  • javac: Java Compiler, Java kaynak kodunu (source code) derleyerek bytecode'a dönüştürür.

  • jar: Java Archive, bir veya daha fazla dosyayı tek bir dosyada paketler ve sıkıştırır.

Çalıştırma (Run):

  • JRE (Java Runtime Environment): Java uygulamalarını çalıştırmak için gereken runtime ortamıdır.

  • java: Java uygulamalarını çalıştırmak için kullanılan komuttur.

Ek Araçlar:

JDK'nın içinde birçok ek araç ve komut bulunmaktadır. Örneğin:

Bu araçlar, Java uygulamaları geliştirirken, derlerken ve çalıştırırken ihtiyaç duyulabilecek çeşitli işlevleri yerine getirir.

Java 9'da yapılan büyük değişikliklerden biri, JDK (Java Development Kit) ve JRE (Java Runtime Environment) ayrımının kaldırılmasıdır. Önceki sürümlerde, JDK ve JRE ayrı paketler olarak sunuluyordu ve kullanıcılar ihtiyacına göre bunlardan birini indirip kurabiliyordu. Ancak Java 9'dan itibaren, JDK indirildiğinde JRE de bu paketin içinde yer alıyor. Bu değişiklik, kullanıcıların daha az dosya indirmesini sağlamakta ve kurulum sürecini basitleştirmektedir.


Build,

Java'da "compile" süreci, Java kodlarının çalıştırılabilir hale getirilmesi sürecidir.

1 - Kaynak Kodun Geliştirilmesi (Develop Source Code)

  • Java programcısı, Java programını yazdığı bir kaynak kod dosyası (örneğin MyClass.java) oluşturur.

public class MyClass {
    public static void main(String[] args) {
        System.out.println("Hello World");
    }
}

2 - Derleme (Compile)

  • Kaynak kod dosyası (MyClass.java), Java derleyicisi (javac) kullanılarak derlenir. Bu işlem, kaynak kodun makine tarafından çalıştırılabilir bayt kodlarına dönüştürülmesi sürecidir. Derleme sonucunda .class uzantılı bir dosya (örneğin MyClass.class) oluşturulur.

3 - Çalıştırma (Run)

  • Oluşturulan bayt kodu dosyası (MyClass.class), Java Runtime Environment (JRE) kullanılarak çalıştırılır. Bu işlem, bayt kodlarının Java Sanal Makinesi (JVM) tarafından çalıştırılmasıyla gerçekleştirilir.

java MyClass
  • Bu komut, MyClass.class dosyasını çalıştırarak "Hello World" mesajını ekrana yazdırır.

Özetle, Java'da bir program yazıldığında, önce kaynak kod dosyası oluşturulur, ardından bu dosya derlenir ve son olarak derlenen dosya çalıştırılarak programın çıktısı alınır. Bu süreç sayesinde, Java kodları farklı platformlarda çalıştırılabilir hale gelir.

Java Virtual Machine (JVM),

JVM, Java programlarının çalıştırılmasını sağlar. JVM'in temel çalışma adımları:

Kaynak Kod (Source Code):

  • İnsan tarafından okunabilir Java kaynak kodu, örneğin MyClass.java.

Ara Kod (Byte Code):

  • javac komutu ile derlenen bytecode, bir ara kod formatıdır ve .class uzantılı dosyalarda saklanır. Bu bytecode, JVM tarafından yorumlanarak çalıştırılabilir.

javac MyClass.java

JVM ve Makine Kodu:

  • JVM, bytecode'u alır ve çalıştırmak için makine koduna çevirir. Bu, JVM'in çalıştığı platforma bağımlıdır ve bytecode'un platformdan bağımsız çalışmasını sağlar.

java MyClass

Package,

Java'da paketleme, bir veya birden fazla sınıf dosyasını (class files) ve bunlara bağlı diğer dosyaları bir araya getirerek, dağıtımı ve kullanımını kolaylaştıran bir dosya oluşturma sürecidir. Bu süreçte, Java Archive (JAR) veya Web Archive (WAR) dosyaları kullanılır.

JAR dosyası, birçok sınıf dosyasını, bağımlılıklarını, resim ve diğer kaynak dosyalarını tek bir arşivde birleştirir. JAR dosyaları, genellikle uygulamaların daha kolay dağıtılmasını ve çalıştırılmasını sağlar. Örneğin, tüm uygulamayı tek bir JAR dosyasına paketleyerek, kullanıcıların uygulamayı çalıştırmak için sadece bu dosyayı kullanması yeterli olur.

WAR dosyası, web uygulamaları için kullanılan bir arşiv formatıdır. Java Servlet, JSP ve ilgili sınıf dosyaları, kaynaklar ve konfigürasyon dosyaları bir WAR dosyasında birleştirilir ve bir Java web sunucusunda dağıtılır.

META-INF/MANIFEST.MF

Bu dosya, JAR dosyasının meta bilgilerinin bulunduğu yerdir. Manifest dosyasında, JAR dosyasının versiyonu, yaratıcı bilgileri ve ana sınıf (main class) gibi bilgiler yer alır. Örneğin:

Manifest-Version: 1.0
Created-By: 1.8.0_242 (Private Build)
Main-Class: MyClass

Paketleme Örneği

  1. Gerekli Sınıf Dosyalarının Derlenmesi:

javac MyClass.java Service1.java Service2.java
  1. JAR Dosyasının Oluşturulması:

jar cf MyApp.jar MyClass.class Service1.class Service2.class
  • Bu komut, MyApp.jar adında bir JAR dosyası oluşturur ve içine MyClass.class, Service1.class, Service2.class dosyalarını ekler.

  1. JAR Dosyasının Çalıştırılması:

java -jar MyApp.jar

Bu komut, MyApp.jar dosyasını çalıştırır ve içindeki ana sınıfın (main class) main metodunu başlatır.

  • JAR Dosyası: Bir JAR dosyası oluşturmak için jar komutunu kullanırız. cf parametresi, yeni bir arşiv oluşturulacağını (c) ve dosya isimlerinin takip ettiğini (f) belirtir.

  • Manifest Dosyası: Eğer MyApp.jar içindeki META-INF/MANIFEST.MF dosyasını inceleyecek olursak, burada JAR dosyasının versiyon bilgisi, yaratıcı bilgileri ve ana sınıf bilgisi bulunur.

  • Çalıştırma: java -jar MyApp.jar komutu, JAR dosyasının içindeki Main-Class olarak belirtilen sınıfın main metodunu çalıştırır.

Java projelerinde, çeşitli sınıfları ve kaynakları tek bir dosyada paketlemek için Java Archive (JAR) dosyaları kullanılır. JAR dosyaları, tüm sınıf dosyalarını ve diğer kaynakları içeren sıkıştırılmış bir arşivdir. Bu dosyalar, projeyi dağıtmayı ve çalıştırmayı kolaylaştırır. JAR dosyası oluşturduktan sonra, ana sınıfın main metodunu çalıştırmak için java -jar komutu kullanılır. Örneğin:

java -jar MyApp.jar

Ancak, JAR dosyasının içindeki belirli bir sınıfı çalıştırmak için, JAR dosyasını classpath'e ekleyerek java -cp komutunu kullanabilirsiniz. Bu yöntemle, ana sınıf olarak belirtilmemiş olan bir sınıfı doğrudan çalıştırabilirsiniz. Örneğin:

java -cp MyApp.jar Service2

Bu komut, MyApp.jar dosyasının içinde bulunan ve main metoduna sahip Service2 sınıfını çalıştırır. Örneğin, java -cp MyApp.jar Service2 komutu, Service2.class dosyasını çalıştırır, eğer bu sınıf bir main metoduna sahipse.

public class Service2 {
    public static void main(String[] args) {
        System.out.println("Service2 is running");
    }
}

Özetle, java -jar komutu JAR dosyasının ana sınıfını çalıştırırken, java -cp komutu ile JAR dosyasındaki belirli bir sınıfı çalıştırabilirsiniz. Bu, projedeki farklı sınıfları çalıştırmayı ve test etmeyi kolaylaştırır.


Document,

"javadoc" komutu, Java sınıflarından belgeler oluşturmak için kullanılır.

javadoc -d doc MyClass.java
  • javadoc: Bu komut, Java kaynak kodu dosyalarından API belgeleri oluşturur.

  • -d doc: Bu seçenek, oluşturulan belgelerin hangi dizine kaydedileceğini belirtir. Burada, belgeler "doc" adlı bir dizine kaydedilecek.

  • MyClass.java: Bu, belgelerin oluşturulacağı Java kaynak kodu dosyasıdır.

Bu komut çalıştırıldığında, "MyClass.java" dosyasındaki sınıf ve metodlara ait açıklamalar, HTML formatında belgeler olarak "doc" dizinine oluşturulur. Bu belgeler, geliştiricilere kodun nasıl çalıştığını ve nasıl kullanılacağını anlamalarına yardımcı olur.


Java programlama diliyle bir yazılım geliştirme sürecinin ana adımları:

  1. Develop (Geliştirme):

    • Bu aşamada, geliştiriciler kaynak kodu yazar. Örneğin, MyClass.java dosyası.

  2. Compile (Derleme):

    • javac MyClass.java komutuyla, Java kaynak kodu derlenir. Derleyici (javac), yazılan Java kodunu makine diline daha yakın olan bayt koduna (bytecode) dönüştürür ve bu kod .class uzantılı dosyalarda saklanır. Örneğin, MyClass.class.

  3. Package (Paketleme):

    • jar cf MyClass.jar MyClass.class komutuyla, derlenmiş .class dosyası veya dosyaları ve gerekli diğer dosyalar tek bir arşiv dosyasında (JAR dosyası) paketlenir. JAR (Java Archive) dosyaları, Java uygulamalarının dağıtımı ve çalıştırılması için kullanılır. Bu aşamada tüm gerekli sınıf dosyaları ve bağımlılıklar bu arşivde toplanır.

  4. Document (Belgelendirme):

    • javadoc MyClass.java komutuyla, yazılan Java kodu için dokümantasyon oluşturulur. javadoc, Java kodu içinde yer alan yorumları kullanarak, HTML formatında dokümanlar oluşturur. Bu dokümanlar, sınıfların, metodların ve alanların ne işe yaradığını açıklar.

Özetle,

  • Develop: Kod yazma aşaması.

  • Compile: Yazılan kodun bayt koduna çevrilmesi.

  • Package: Bayt kodunun bir arşiv dosyasına (JAR) paketlenmesi.

  • Document: Kodun dokümantasyonunun oluşturulması.


Build Tools: Build araçları, yazılım projelerinin otomatikleştirilmiş derleme, test, paketleme ve dağıtım süreçlerini yönetmek için kullanılır. Üç popüler build aracı şunlardır:

  1. Maven: Maven, özellikle Java projeleri için yaygın olarak kullanılan bir build aracıdır. Proje yapılandırma, bağımlılık yönetimi ve proje yönetimi için standart bir yaklaşım sağlar. XML tabanlı POM (Project Object Model) dosyaları kullanılarak yapılandırılır.

  2. Gradle: Gradle, Maven ve Ant gibi build araçlarının özelliklerini birleştiren modern bir build aracıdır. Groovy veya Kotlin DSL (Domain-Specific Language) kullanılarak yapılandırılır ve yüksek performanslı build süreçleri sağlar.

  3. ANT: Apache Ant, XML tabanlı yapılandırma dosyaları kullanarak build süreçlerini otomatikleştiren eski bir build aracıdır. Esneklik sağlar ancak daha yeni araçlar kadar yüksek düzeyde bağımlılık yönetimi sunmaz.

PreviousApplications BasicsNextNodeJS Introduction

Last updated 10 months ago

Was this helpful?

Java Kurulumu hakkında =>

🟧
🟨
https://hostman.com/tutorials/installing-java-on-ubuntu-22-04/