Maven: importare librerie statiche in pochi passi

Maven ci consente di gestire in maniera semplice e strutturata tutte le dipendenze di cui il nostro progetto ha bisogno, affidandosi ai diversi repository disponibili in rete. Esistono però casi in cui questi non possono esserci d’aiuto, come quando abbiamo tra le mani una libreria vecchio stile già impacchettata come .jar e di cui non si riesce o non è possibile risalire ad una versione online.

Niente paura!

Esistono diversi metodi con cui risolvere questa situazione facendo sì che tale dipendenza figuri nel nostro .pom, ma quella che tra tutte preferisco è sicuramente la creazione di un repository locale di progetto nel quale installare queste librerie, così da poterle utilizzare come normali dipendenze in pieno stile Maven.

Per prima cosa spostiamoci nella root del progetto e creiamo una nuova cartella “local-repository”; a questo punto, dalla nostra console, eseguiamo il seguente comando per installare la libreria nella cartella appena creata e renderla a tutti gli effetti un repository indirizzabile:

mvn deploy:deploy-file -Dfile=[percorso del jar] -DgroupId=[group-id] -DartifactId=[artifact-id] -Dversion=[version] -Dpackaging=jar -Durl=file:./local-repository/ -DrepositoryId=local-repository -DupdateReleaseInfo=true

Nota: potreste non essere a conoscenza di quali group-id, artifact-id e version siano appropriati per il .jar in vostro possesso; in quel caso consiglio di usare un group-id come [namespaceprogetto].general, il nome del file al posto dell’artifact-id e 1.0 per la version.

Ora non ci resta che importare il repository locale nel .pom e dichiarare la dipendenza dalla libreria appena installata.

<repositories>
    ...
    <repository>
        <id>local-repository</id>
        <url>file:///${project.basedir}/local-repository</url>
    </repository>
    ...
</repositories>

<dependencies>
    ...
    <dependency>
    	<groupId>it.mioprogetto.general</groupId>
	<artifactId>superlibrary</artifactId>
	<version>1.0</version>
    </dependency>
    ...
</dependencies>

Ora siete pronti a proseguire il vostro lavoro!

About the Author

brokenJoypad

Appassionato, studente e impiegato nel settore informatico. Di recente, anche collaboratore su questo blog!

Leave a Reply

Your email address will not be published. Required fields are marked *