12 Aralık 2021 Pazar

jar plugin - Jar Oluşturur

Giriş
jar veya executable jar oluşturmak içindir. jar oluştururken manifest dosyasını tanımlamaya da izin verir

Goals
help
jar
test-jar

jar Goal
Örnek
Taglerin açıklaması şöyle.
-archive: generate manifest file, define in manifest all dependencies from the lib folder and what is the main class so you can run the application also with "java -jar"

- excludes: don't include the log4j2.xml file in the module jar because will be in config folder available at runtime from outside jar.
Şöyle yaparız.
<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-jar-plugin</artifactId>
  <version>3.0.2</version>
  <configuration>
    <archive>
      <manifest>
        <addClasspath>true</addClasspath>
        <classpathPrefix>lib/</classpathPrefix>
        <mainClass>test.LeanFTest</mainClass>
      </manifest>
    </archive>
    <excludes>
      <exclude>log4j2.xml</exclude>
    </excludes>
  </configuration>
</plugin>
Örnek
Eski projelerde şöyle yaparız. useDefaultManifestFile artık kullanılmıyor.
<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-jar-plugin</artifactId>
  <version>2.4</version>
  <configuration>
    <useDefaultManifestFile>true</useDefaultManifestFile>
  </configuration>
</plugin>
Manifest Dosyası Tanımlama Örnekleri
Örnek

manifest dosyasında Main-Class satırını eklemek için şöyle yaparız.
<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-jar-plugin</artifactId>
  <version>2.4</version>
  <configuration>
    <archive>
      <manifest>
        <mainClass>hello.Application</mainClass>
      </manifest>
    </archive>
  </configuration>
</plugin>
Örnek
manifest dosyasında Class-Path ve Main-Class satırını eklemek için şöyle yaparız.
<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-jar-plugin</artifactId>
  <version>2.5</version>
  <configuration>
    <archive>
      <index>true</index>
      <manifest>
        <addClasspath>true</addClasspath>
        <classpathPrefix>lib/</classpathPrefix>
        <mainClass>com.client.App</mainClass>
      </manifest>
    </archive>
  </configuration>
</plugin>
Hazır Manifest Dosyası Belirtme Örnekleri
Örnek
Şöyle yaparız
<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-jar-plugin</artifactId>
  <version>3.2.0</version>
  <configuration>
    <archive>
      <manifestFile>src/main/resources/META-INF/MANIFEST.MF</manifestFile>
    </archive>
  </configuration>
</plugin>
Örnek
Şöyle yaparız.
<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-jar-plugin</artifactId>
  <version>3.0.2</version>
  <configuration>
    <archive>
      <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
    </archive>
  </configuration>
  ...
</plugin>
test-jar Goal
Örnek
Şöyle yaparız. Test sınıflarını alarak jar halinde paketler
<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-jar-plugin</artifactId>
  <executions>
    <execution>
      <goals>
         <goal>test-jar</goal>
      </goals>
      <configuration>
        <excludes>
          <exclude>**/*.serialization.compatibility.binary</exclude>
        </excludes>
      </configuration>
    </execution>
  </executions>
</plugin>


Hiç yorum yok:

Yorum Gönder

Local Snapshot Kullanmak

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