Uvod u dodatak Animal Sniffer Maven

1. Uvod

Dok radimo u Javi, postoje trenuci kada trebamo koristiti višejezične verzije istodobno.

Uobičajeno je da naš Java program mora biti kompatibilan s jednom Java verzijom (recimo - Java 6), ali da u našim razvojnim alatima moramo koristiti drugu verziju (recimo - Java 8) i možda drugu verziju za pokretanje aplikacije .

U ovom brzom članku pokazat ćemo kako je lako dodati zaštitne mjere protiv kompatibilnosti temeljene na Javi i kako se dodatak Animal Sniffer može upotrijebiti za označavanje ovih problema u vrijeme izrade provjerom našeg projekta u odnosu na prethodno generirane potpise.

2. Postavljanje -izvor i -cilj Java Compilera

Počnimo s a Pozdrav svijete Maven projekt - gdje koristimo Javu 7 na našem lokalnom računalu, ali želimo projekt implementirati u produkcijsko okruženje koje još uvijek koristi Javu 6.

U tom slučaju možemo konfigurirati dodatak za kompajler Maven sa izvor i cilj polja koja upućuju na Javu 6.

The "izvor" polje se koristi za specificiranje kompatibilnosti s promjenama jezika Java i "cilj" polje služi za specificiranje kompatibilnosti s JVM promjenama.

Pogledajmo sada konfiguraciju Maven prevoditelja za pom.xml:

  org.apache.maven.plugins maven-compiler-plugin 3.7.0 1.6 1.6 

Uz Javu 7 na našem lokalnom stroju i Java kod koji ispisuje "zdravo svijete" na konzolu, ako nastavimo i gradimo ovaj projekt pomoću Mavena, on će se pravilno graditi i raditi na proizvodnom okviru koji pokreće Javu 6.

3. Predstavljanje API nekompatibilnosti

Pogledajmo sada kako je lako slučajno uvesti API nekompatibilnost.

Recimo da počnemo raditi na nekom novom zahtjevu i koristimo neke API značajke Jave 7 koje nisu bile prisutne u Javi 6.

Pogledajmo ažurirani izvorni kod:

javna statička void glavna (String [] args) {System.out.println ("Hello World!"); System.out.println (StandardCharsets.UTF_8.name ()); }

java.nio.charset.StandardCharsets uveden je u Javi 7.

Ako sada nastavimo i izvršimo izgradnju Maven, ona će se i dalje uspješno kompajlirati, ali neće uspjeti tijekom izvođenja s pogreškom povezivanja na proizvodnom okviru s instaliranom Java 6.

U dokumentaciji Mavena spominje se ova zamka i preporučuje se dodatak Animal Sniffer kao jedna od opcija.

4. Izvještavanje o API kompatibilnostima

Dodatak Animal Sniffer nudi dvije osnovne mogućnosti:

  1. Generiranje potpisa izvršavanja Java
  2. Provjera projekta protiv API potpisa

Izmijenimo sada pom.xml uključiti dodatak:

 org.codehaus.mojo animal-sniffer-maven-plugin 1.16 org.codehaus.mojo.signature java16 1.0 njuškalo životinja provjeri provjera 

Ovdje se odjeljak za konfiguraciju Animal Sniffer odnosi na postojeći runtime potpis Java 6. Također, odjeljak izvršenja provjerava i provjerava izvorni kôd projekta u odnosu na zadani potpis i zastavice ako se pronađu problemi.

Ako nastavimo i gradimo projekt Maven, izrada neće uspjeti ako se dodatak izvještava o pogrešci provjere potpisa:

[INFO] ------------------------------------------------ ------------------------- [INFO] IZGRADNJA KVARA [INFO] ----------------- -------------------------------------------------- ----- [POGREŠKA] Nije uspjelo izvršiti cilj org.codehaus.mojo: animal-sniffer-maven-plugin: 1.16: provjeri (animal-sniffer) na primjeru projekta-animal-sniffer-mvn-plugin: Pronađene su pogreške potpisa. Provjerite ih i po potrebi ih zanemarite odgovarajućom bilješkom.

5. Zaključak

U ovom smo tutorijalu istražili dodatak Maven Animal Sniffer i kako se on može koristiti za prijavljivanje nekompatibilnosti povezanih s API-jem u vrijeme izrade.

Kao i uvijek, puni izvorni kod dostupan je na GitHub-u.


$config[zx-auto] not found$config[zx-overlay] not found