[Java-Maven] Versione di due artefatti dello stesso gruppo

di il
3 risposte

[Java-Maven] Versione di due artefatti dello stesso gruppo

Buongiorno a tutti,

Mi trovo con un problema di Java un pò particolare.
Stò lavorando su un progetto java condiviso con altri miei colleghi, al quale non sò come porre rimedio.

Partiamo da questo presupposto che non sò quanto sia vero, ma che mi crea problemi: Io sò che due artefatti diversi, ma appartenenti al medesimo "GroupId" devono avere la stessa versione.

Invece io mi trovo con un pom.xml di un progetto fatto in questo modo:


		<!-- https://mvnrepository.com/artifact/org.springframework.data/spring-data-jpa -->
		<dependency>
			<groupId>org.springframework.data</groupId>
			<artifactId>spring-data-jpa</artifactId>
			<version>1.11.0.RELEASE</version>
		</dependency>


		<!-- https://mvnrepository.com/artifact/org.springframework.data/spring-data-commons-core -->
		<dependency>
			<groupId>org.springframework.data</groupId>
			<artifactId>spring-data-commons-core</artifactId>
			<version>1.4.1.RELEASE</version>
		</dependency>

Il problema ora è questo: mi trovo con due artefatti diversi: spring-data-jpa e spring-data-commons-core ma Il groupId di entrambi è lo stesso: org.springframework.data.

Ho dunque un errore di mismatch della versione.

Come si risolve, in questi casi?

Grazie

3 Risposte

  • Re: [Java-Maven] Versione di due artefatti dello stesso gruppo

    harpefalcata ha scritto:


    Io sò che due artefatti diversi, ma appartenenti al medesimo "GroupId" devono avere la stessa versione.
    No, detto così no ... non è affatto detto/vero. DIPENDE da cosa sono quei due artifact e che relazione hanno tra di loro.

    harpefalcata ha scritto:


    Il problema ora è questo: mi trovo con due artefatti diversi: spring-data-jpa e spring-data-commons-core ma Il groupId di entrambi è lo stesso: org.springframework.data.

    Ho dunque un errore di mismatch della versione.
    Sul Maven Central, l'ultima versione del spring-data-commons-core è del 2013 (appunto la 1.4.1.RELEASE). Mi viene da pensare che sia qualcosa di "vecchio" e non più portato avanti/allineato.

    L'artifact spring-data-jpa invece ha tra le sue dipendenze un spring-data-commons (non -core !!), verificato poco fa dal Dependency Hierarchy in Eclipse. Ed ho guardato il contenuto dei jar di spring-data-commons-core e spring-data-commons ... sono molto simili, ci sono molte "sovrapposizioni" di classi, ovvero classi con identico nome qualificato. Solo che la spring-data-commons-core ha meno roba.

    Quindi appunto mi sembra che la spring-data-commons-core sia qualcosa di meno recente. Pertanto la prima cosa che mi chiederei è: serve DAVVERO questa spring-data-commons-core ??
  • Re: [Java-Maven] Versione di due artefatti dello stesso gruppo

    CHe bello !! Mi hai tolto un enorme problema !! Immaginavo che fosse qualche problema di questo tipo.
    In realtà questo pom è stato integralmente ereditato da un repository git condiviso.

    La cosa strana è che l'unico ad avere questo tipo di problema sono io che sono l'unico, nel team di sviluppo, ad utilizzare Linux. Tutti gli altri sono su Windows.

    Al momento sono l'unico ad avere questo problema, sembra.

    Mi preparo uno scriptino in bash che mi commenti quella dipendenza in modo da escluderla dal build, e poi un secondo script che la ripristini, quando faccio il commit sul repository, in questo modo non inquino il pom del progetto.

    Sollevo una change request per richiedere la rimozione di questa dipendenza e ,se il cliente non è troppo testardo, dovrei risolvere.

    Grazie
  • Re: [Java-Maven] Versione di due artefatti dello stesso gruppo

    Giusto come precisazione/conferma, ho fatto una verifica su varie versioni dell'artifact spring-data-jpa:

    - fino a spring-data-jpa 1.2.1.RELEASE, c'era come dipendenza spring-data-commons-core
    - da spring-data-jpa 1.3.0.RELEASE in poi, c'è come dipendenza spring-data-commons

    Quindi direi che è proprio solo una nuova scelta di denominazione di questa dipendenza. Pertanto, ad occhio, direi che nel tuo caso la spring-data-commons-core NON serve più (verifica, ovviamente).
Devi accedere o registrarti per scrivere nel forum
3 risposte