# Libary Richtig hinzufügen



## Nilsy8214 (25. Dez 2021)

Also ich Möchte einfach eine Libary  https://github.com/kwhat/jnativehook in Mein Maven Proekt hinzufügen habe aber keine Ahnung wie das gehen soll was ich bis jetzt gefunden habe war Einfach diese dependency in meiner pom Hinzuzufügen

```
<dependency>
            <groupId>com.1stleg</groupId>
            <artifactId>jnativehook</artifactId>
            <version>2.1.0</version>
        </dependency>
```
in der pom wird mir das auch als Richtig angezeigt aber sonst wird das nicht erkannt ich habe auch noch nichts heruntergeladen weil ich auch keine Ahnung habe was ich überhaupt herunterladen müsste


----------



## LimDul (25. Dez 2021)

Maven sollte dir das automatisch runterladen und du solltest in der IDE zur Verfügung haben. Was heißt denn "nicht erkannt"?


----------



## Mart (25. Dez 2021)

wenn es nicht vom maven central repository ist wirds dir deine pom nicht laden du musst die anleitung von github durchmachen









						Working with the Apache Maven registry - GitHub Docs
					

You can configure Apache Maven to publish packages to GitHub Packages and to use packages stored on GitHub Packages as dependencies in a Java project.




					docs.github.com
				




dh du brauchst die dependency.. den repository eintrag und eine settings.xml mit einem "mindestens" read access token ansonsten hoppts nich


ganz unten wird das einfügen beshcrieben aber verpass nicht den punkt wo man den access braucht, falls du eine Lösung ohne settings.xml findest bitte sags mir xD


----------



## mrBrown (25. Dez 2021)

Nilsy8214 hat gesagt.:


> Also ich Möchte einfach eine Libary  https://github.com/kwhat/jnativehook in Mein Maven Proekt hinzufügen habe aber keine Ahnung wie das gehen soll was ich bis jetzt gefunden habe war Einfach diese dependency in meiner pom Hinzuzufügen
> 
> ```
> <dependency>
> ...


Wo kommt denn die Depedency her? Die in dem GitHub-Repo verlinkte hat eine andere groupId: https://search.maven.org/artifact/com.github.kwhat/jnativehook/2.2.1/jar





Mart hat gesagt.:


> ganz unten wird das einfügen beshcrieben aber verpass nicht den punkt wo man den access braucht, falls du eine Lösung ohne settings.xml findest bitte sags mir xD


Für private Repos braucht man immer die passenden Zugangsdaten in der settings.xml (im Idealfall aber nicht im plaintext), das Repo selbst kann man aber auch einfach in der pom.xml angeben.


----------



## Mart (25. Dez 2021)

mrBrown hat gesagt.:


> Für private Repos braucht man immer die passenden Zugangsdaten in der settings.xml (im Idealfall aber nicht im plaintext), das Repo selbst kann man aber auch einfach in der pom.xml angeben.


kann man dsa umgehen mit der settings.xml bzw repo so umstellen dass jeder es durch maven nutzen kann ohne token?


----------



## kneitzel (26. Dez 2021)

mrBrown hat gesagt.:


> Wo kommt denn die Depedency her? Die in dem GitHub-Repo verlinkte hat eine andere groupId: https://search.maven.org/artifact/com.github.kwhat/jnativehook/2.2.1/jar


Wobei es die Abhängigkeit, die der TE angibt, auf Maven central gibt:





						Maven Repository: com.1stleg » jnativehook » 2.1.0
					






					mvnrepository.com
				




Daher ist die Frage, in wie weit eure Hinweise wirklich zielführend sind. Die Abhängigkeit, die da so angegeben wurde, sollte gefunden werden - und das ohne irgendwelche speziellen Repos, Zugriffszeiten oder sonst was.


----------



## httpdigest (26. Dez 2021)

Korrekt. Das ist in etwa so, als hätte man hierauf geantwortet: "Ja, also *falls *du Gradle verwendest, dann wird das mit dem XML <dependency>-Block so nicht funktionieren. Da musst du das anders schreiben." - Ja, stimmt, ist aber hier nicht der Fall.
Das Besorgen dieser Dependency über Maven funktioniert einwandfrei und ohne Probleme über Maven Central.
Deswegen liegt der Fehler vermutlich irgendwo anders. Lokale Netzwerk-Probleme oder die Library wurde vielleicht einmal (aufgrund solcher Probleme) unvollständig/inkorrekt von Maven heruntergeladen und ist jetzt broken im lokalen Maven Cache (ist mir schon häufig passiert). In letzterem Fall z.B. einfach mal das Verzeichnis ~/.m2/com/1stleg löschen.


----------



## kneitzel (26. Dez 2021)

Meine Antwort war evtl. auch relativ kurz gehalten. Ein erster Ansatz könnte sein, dass man erst einmal:
- Die genaue Fehlerbeschreibung bekommt (siehe #2)
- ggf schon das ganze pom.xml bekommt. Wobei das - je nach genauer Fehlerursache - evtl. schon unnötig ist. Aber ich kann mir ganz viele Fehlerursachen vorstellen, angefangen von "dependency ist in einem Kommentar" über "an falscher Stelle eingefügt" (Also z.B. im dependencyManagement Block) ......
- Dann kann man tatsächlich die settings.xml betrachten, falls da etwas hinzu gefügt wurde (Also z.B. Verweis auf ein anderes Repository)

Dann kann man maven auch mal mit -U Flag starten - falls es ein temporäres Problem gab, dann wird Maven nicht sofort versuchen, es erneut zu laden.

u.s.w.

Mehr Informationen wären also auf jeden Fall wichtig so wie es @LimDul in #2 angefangen hatte.


----------



## kneitzel (26. Dez 2021)

httpdigest hat gesagt.:


> In letzterem Fall z.B. einfach mal das Verzeichnis ~/.m2/com/1stleg löschen.


Da nur als kleine korrektur: der Pfad sollte bestimmt ~/.m2/*repository*/com/1stleg heissen.
Und falls die ~ unbekannt ein sollte (unter Windows wird die so nicht verwendet): Das meint das Verzeichnis des Anwenders. Unter Windows z.B. über die Umgebungsvariable USERPROFILE abrufbar und in der Regel ein Verzeichnis wie c:\Users\<username> (Vor Windows 10 oft auch c:\Documents and Settings\<username>)


----------

