Legacy Support Team
ტექნიკური

ლეგასი Java აწყობის სისტემები: გადარჩენის სახელმძღვანელო

8 მარტი, 202410 წუთი
Java აწყობის პროცესის დიაგრამა

შესავალი

ლეგასიური Java აწყობის სისტემების მხარდაჭერა არ უნდა იყოს კოშმარი. მიუხედავად იმისა, რომ თქვენ იყენებთ Ant-ს, Maven 1-ს თუ Gradle-ის ადრეულ ვერსიას, ეს სახელმძღვანელო გთავაზობთ პრაქტიკულ ნაბიჯებს, რათა თქვენი აწყობის პროცესები გაგრძელდეს შეუფერხებლად და ერთდროულად მოამზადოთ გზა მოდერნიზაციისთვის. მოდით, ჩავუღრმავდეთ პრაქტიკულ სტრატეგიებს, რომლებიც შეგიძლიათ დღესვე გამოიყენოთ.


ნაბიჯი 1: აწყობის პროცესის დოკუმენტირება

დაიწყეთ თქვენი აწყობის სისტემის მუშაობის ნათელი და განახლებული ჩანაწერის შექმნით. ეს დაზოგავს თქვენს და თქვენი გუნდის დროს უამრავი სტრესისგან.

რა უნდა დოკუმენტირებულიყო:

  • აწყობის სკრიპტები: გახსენით თქვენი build.xml (Ant) ან pom.xml (Maven) და დაამატეთ კომენტარები, რათა ახსნათ თითოეული სამიზნე ან დავალება. მაგალითად:
<!-- კომპილირებს ყველა წყაროს ფაილს src დირექტორიაში -->  
<target name="compile">  
  <javac srcdir="src" destdir="build/classes"/>  
</target>  
  • დამოკიდებულებები: ჩამოწერეთ ყველა დამოკიდებულება, მათი ვერსიები და წყაროები. გამოიყენეთ ცხრილი ან მარტივი ტექსტური ფაილი.

  • აწყობის ნაბიჯები: ჩამოწერეთ ზუსტი ბრძანებები და გარემოს პარამეტრები, რომლებიც საჭიროა აწყობის გასაშვებად. მაგალითად:

# დააყენეთ Java home JDK 1.8-ზე  
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk  

# გაუშვით Ant აწყობა  
ant compile  

პროფესიონალური რჩევა:

გამოიყენეთ ისეთი ინსტრუმენტები, როგორიცაა Doxygen ან MkDocs, რათა შექმნათ ძიებადი და მომხმარებლისთვის მოსახერხებელი დოკუმენტაცია.


ნაბიჯი 2: დამოკიდებულებების მართვის მოდერნიზაცია

ლეგასიური სისტემები ხშირად იყენებენ მოძველებულ ან ძნელად მოსაძებნ დამოკიდებულებებს. აი, როგორ შეგიძლიათ ამის გამოსწორება:

Ant პროექტებისთვის:

  • გამოიყენეთ Ivy: დააკავშირეთ Apache Ivy დამოკიდებულებების მართვისთვის. დაამატეთ ivy.xml ფაილი დამოკიდებულებების დეკლარირებისთვის:
<dependencies>  
  <dependency org="junit" name="junit" rev="4.12"/>  
</dependencies>  

შემდეგ, განაახლეთ თქვენი build.xml Ivy-ის გამოყენებით დამოკიდებულებების გადასაჭრელად.

Maven 1 პროექტებისთვის:

  • გადადით Maven 3-ზე: შექმენით ახალი pom.xml Maven 3-ისთვის და თანდათან გადაიტანეთ თქვენი დამოკიდებულებები. გამოიყენეთ mvn dependency:tree ბრძანება თქვენი მიმდინარე კონფიგურაციის ანალიზისთვის.

ყველა პროექტისთვის:

  • დამოკიდებულებების ლოკალურად დაჰოსტირება: დააყენეთ პირადი რეპოზიტორია ისეთი ინსტრუმენტების გამოყენებით, როგორიცაა Nexus ან Artifactory, რათა დარწმუნდეთ, რომ დამოკიდებულებები ყოველთვის ხელმისაწვდომია.

ნაბიჯი 3: გააუვტომატეთ განმეორებადი დავალებები

ლეგასიური აწყობის სისტემები ხშირად მოითხოვს ხელით ნაბიჯებს. გააუვტომატეთ ისინი, რათა დაზოგოთ დრო და შეამციროთ შეცდომები.

Make და Shell სკრიპტების გამოყენება

Make და shell სკრიპტები მსუბუქი, პორტაბელური და მარტივი დასაყენებელია უმეტეს გარემოებში. ისინი ხდიან აწყობის პროცესს გამჭვირვალეს და მართვადს.

ძირითადი ცნებები:
  • Makefile: Makefile განსაზღვრავს წესებს სამიზნეების აწყობისთვის. თითოეული წესი განსაზღვრავს სამიზნეს, მის დამოკიდებულებებს და ბრძანებებს შესასრულებლად.
  • .PHONY: გამოიყენეთ .PHONY იმ სამიზნეების დეკლარირებისთვის, რომლებიც ფაილები არ არიან (მაგ., clean ან build). ეს ხელს უშლის კონფლიქტებს იმავე სახელის ფაილებთან.
Makefile-ის მაგალითი:
# დეკლარირება ფსევდო სამიზნეების  
.PHONY: clean compile test package  

# კომპილირება Java წყაროს ფაილების  
compile:  
	javac -d build/classes src/*.java  

# ტესტების გაშვება  
test: compile  
	java -cp build/classes org.junit.runner.JUnitCore MyTest  

# აპლიკაციის პაკეტირება  
package: compile  
	jar cf build/myapp.jar -C build/classes .  

# აწყობის არტეფაქტების გასუფთავება  
clean:  
	rm -rf build/*  
Shell სკრიპტის მაგალითი:
#!/bin/bash  

# დააყენეთ Java home JDK 1.8-ზე  
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk  

# კომპილირება წყაროს ფაილების  
javac -d build/classes src/*.java  

# ტესტების გაშვება  
java -cp build/classes org.junit.runner.JUnitCore MyTest  

# აპლიკაციის პაკეტირება  
jar cf build/myapp.jar -C build/classes .  
რატომ გამოვიყენოთ Make და Shell სკრიპტები?
  • გამჭვირვალობა: აწყობის პროცესი ნათლად არის განსაზღვრული Makefile-ში ან სკრიპტში, რაც აადვილებს მომავალი მხარდამჭერებისთვის გაგებას.
  • პორტაბელურობა: ეს ინსტრუმენტები ხელმისაწვდომია თითქმის ყველა Unix-ის მსგავს სისტემაზე და მარტივად შეიძლება ადაპტირებული იყოს Windows-ისთვის.
  • მოქნილობა: თქვენ შეგიძლიათ დააკავშიროთ ისინი სხვა ინსტრუმენტებთან, როგორიცაა Ant, Maven ან Gradle, ჰიბრიდული მიდგომისთვის.

ნაბიჯი 4: თანდათანობით მოახდინეთ აწყობის სისტემის მოდერნიზაცია

ნაცვლად იმისა, რომ ერთდროულად გადაწეროთ ყველაფერი, მიჰყევით ეტაპობრივ მიდგომას.

Ant პროექტებისთვის:

  • შემოიტანეთ Gradle: დაიწყეთ ერთი მოდულის Gradle-ზე გადაყვანით. გამოიყენეთ ant.importBuild მეთოდი არსებული Ant დავალებების ინტეგრირებისთვის:
ant.importBuild 'build.xml'  
  • გამოიყენეთ Gradle პლაგინები: ისარგებლეთ პლაგინებით დამოკიდებულებების მართვის, ტესტირების და პაკეტირებისთვის.

Maven 1 პროექტებისთვის:

  • გადადით Maven 3-ზე: შექმენით ახალი pom.xml და თანდათან გადაიტანეთ დამოკიდებულებები. გამოიყენეთ mvn help:effective-pom ბრძანება თქვენი მიმდინარე კონფიგურაციის გასაგებად.

ადრეული Gradle პროექტებისთვის:

  • განაახლეთ Gradle: განაახლეთ Gradle-ის უახლეს ვერსიაზე და გამოიყენეთ gradle wrapper თანმიმდევრულობის უზრუნველსაყოფად.

ნაბიჯი 5: ტესტირება და დადასტურება

სანამ სრულად გადახვალთ ახალ აწყობის სისტემაზე, დარწმუნდით, რომ ის იგივე შედეგს გამოიმუშავებს, როგორც ლეგასიური სისტემა.

როგორ ჩავატაროთ ტესტირება:

  • შეადარეთ აწყობის არტეფაქტები: გაუშვით როგორც ლეგასიური, ასევე ახალი აწყობის სისტემები და შეადარეთ მიღებული JARs ან WARs.
  • გააუვტომატეთ ტესტირება: დაწერეთ ინტეგრაციული ტესტები აწყობის შედეგის დასადასტურებლად. მაგალითად, გამოიყენეთ JUnit აწყობილი არტეფაქტის ფუნქციონალურობის ტესტირებისთვის.

ნაბიჯი 6: დაგეგმეთ მომავლისთვის

როდესაც თქვენი აწყობის სისტემა სტაბილური გახდება, დაგეგმეთ გრძელვადიანი მხარდაჭერა:

  • დანიშნეთ რეგულარული მიმოხილვები: პერიოდულად განაახლეთ თქვენი აწყობის სკრიპტები და დამოკიდებულებები.
  • გაწვრთნეთ თქვენი გუნდი: დარწმუნდით, რომ ყველა ესმის ახალი აწყობის პროცესი და ინსტრუმენტები.
  • აკონტროლეთ აწყობის პროცესის პროდუქტიულობა: გამოიყენეთ ისეთი ინსტრუმენტები, როგორიცაა Gradle Build Scan ან Jenkins მეტრიკები, რათა აღმოაჩინოთ ბოთლის ყელი.

დასკვნა

ლეგასიური Java აწყობის სისტემები არ უნდა გაგიჭირდეთ. თქვენი აწყობის პროცესის დოკუმენტირებით, დამოკიდებულებების მართვის მოდერნიზაციით, განმეორებადი დავალებების ავტომატიზაციით Make და shell სკრიპტების გამოყენებით, და თანდათან

მოდით, ვისაუბროთ თქვენს პროექტზე

არ აქვს მნიშვნელობა, გჭირდებათ მოვლა, განახლებები თუ მომავლის დაგეგმვა, ჩვენ აქ ვართ, რომ ვუსმინოთ და დაგეხმაროთ.