Falls ihr in eure Projekte JAR Dateien einbinden wollte, welche nicht per öffentlicher oder privater Maven Repository verfügbar sind, dann könnt ihr hierfür eine lokale Repository im Projekt anlegen und die JARS von hier aus laden.
Ein Beispiel hierfür sind zum Beispiel die API Jars von enaio welcher ihr in eurem eigenen Microservice einsetzen wollt.
Repository anlegen
Zunächst erstellt ihr euch einen Repository Ordner im Projekt.
In Unserem Fall erstellen wir den Ordner /lib.
Als zweites kopiert ihr per Maven die Jar Datei in die neue Repository:
mvn deploy:deploy-file -Durl=file:///home/username/development/my-project/lib/ -Dfile=enaio-rpc-2.8.0.jar -DgroupId=com.os.ecm.rpc -DartifactId=enaio-rpc -Dpackaging=jar -Dversion=2.8.0
-
-Durl
ist der Repository Pfad -
-Dfile
ist das Jar -
-DgroupId
ist die GroupId deines Jars (kann im prinzip frei gewählt werden) -
-DartifactId
ist die artifact ID deines Jars -
-Dversion
ist die Versionsnummer deines Jars
dieser Befehl legt folgende Struktur an:
- /libs/com/os/ecm/rpc/enaio-rpc/
- maven-metadata.xml
- maven-metadata.xml.md5
- maven-metadata.xml.sha1
- 2.8.0/
- enaio-rpc-2.8.0.jar
- enaio-rpc-2.8.0.jar.md5
- enaio-rpc-2.8.0.jar.sha1
- enaio-rpc-2.8.0.pom
- enaio-rpc-2.8.0.pom.md5
- enaio-rpc-2.8.0.pom.sha1
pom.xml
Als nächste kann man die Repository in der pom.xml
bekannt machen und das JAR als Dependency hinterlegen:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
...
<repositories>
<repository>
<id>local-repository</id>
<name>repository</name>
<url>file://${project.basedir}/lib</url>
</repository>
</repositories>
<dependencies>
...
<dependency>
<groupId>com.os.ecm.rpc</groupId>
<artifactId>enaio-rpc</artifactId>
<version>2.8.0</version>
</dependency>
</dependencies>
...
</project>
Cache leeren
In meinem Fall war das Jar bereits in meinem .m2
Cache vorhanden, was zu Problemen geführt hat. In diesem Fall einfach im lokalen .m2
Ordner den entsprechenden Unterordner com/os/ecm/rpc/enaio-rpc/
löschen. Unter Linux befindet sich der .m2
Ordner üblicherweise unter /home/<username>/.m2
. Unter Windows unter c:\Users\<username>\.m2
.