12 Aralık 2021 Pazar

maven Lifecycle Nedir

Lifecycle Nedir?
Açıklaması şöyle.
There are three built-in build lifecycles: default, clean and site. The default lifecycle handles your project deployment, the clean lifecycle handles project cleaning, while the site lifecycle handles the creation of your project's site documentation.
Yani 3 tane lifecycle vardır. Bunlar şöyle
1.  default lifecycle - projeyi derler, test eder ve kurar
2. clean lifecycle - projeyi temizler
3. site lifecycle - dokümantasyon oluşturur

Lifecycle sadece bir kavramsal bir şey olduğu için , gidip şu lifecycle'ı çalıştır diye bir şey yapamıyoruz. Ancak life cycle içindeki bir phase'i çalıştırabiliriz. 

Örnek
Bir örnek şöyle
For example, If you execute the command mvn package , then the maven execute all the phases prior to package (including package phase) in sequential order.

Also if you execute mvn clean install command, then the maven execute up to clean phase of the clean lifecycle and after that, it executes up to install phase of default lifecycle.
Default Lifecyle
mvn install yaparsak şu goal'leri görürüz. Goal'ler pluginlere göre değişebilir.
compile testCompile check checkstyle jar test-jar shade manifest run install

Phase Nedir - Lifecycle Phase'lerden Oluşur
Her lifecycle içinde phase'ler vardır. Detayları maven Phase yazısına taşıdım. Bu phase, yani safhalar belirli bir sırada tanımlı. Sırası burada. mvn komut satırından bir tane phase tetiklenebilir. Bu phase'den önce gelen tüm phase'ler de çalıştırılır.

Yani lifecycle denilen şey aslında phase'lerin hangi sırayla çalışacağını belirten bir listeden ibaret.

Goal Nedir
Her phase aşamasında, plugin'lerin o phase'deki görevi çalıştırılır. Bazen phase'deki çalıştırılacak işler birden fazla olabilir. Bu işleri metod gibi düşünelim. Bu metodlara goal denilir. Dolayısıyla plugin şöyle tanımlanır. Bu plugin generate-sources phase tetiklenince çalışır.
<plugin>
  <groupId>...</groupId>
  <artifactId>...</artifactId>
  <version>...</version>
  <executions>
    <execution>
      <phase>generate-sources</phase>
      <goals>
        <goal>run</goal>
      </goals>
      <configuration>
        ...
      </configuration>
    </execution>
  </executions>
</plugin>
Plugin'e ait goal noktasını özel olarak çalıştırmanın bir diğer yolu da komut satırında plugin:goal şeklinde tetiklemek. Clean plugin'inin clean goal'ını çalıştırmak için şöyle yaparız
mvn clean:clean
default lifecycle
23 tane phase'den oluşur ancak bunların hepsi aynı anda kullanılmıyor. Hangilerinin kullanıldığı paketleme tipine göre değişiyor. Açıklaması şöyle
Each of these lifecycle phases definition always based on the packaging types.
For every packaging, the definition of lifecycle phases is different.
clean lifecycle
3 tane phase'den oluşur

site lifecycle
4 tane phase'den oluşur


Hiç yorum yok:

Yorum Gönder

Local Snapshot Kullanmak

Örnek Şöyle yaparız <repository> <id>snapshot-repository</id> <name>Maven2 Snapshot Repository</name> &l...