2016-03-29 3 views
0

Ich habe diese seltsame Situation. Ich habe eine Spring-Boot-Anwendung und in dieser Anwendung gibt es einige Legacy-Jars wurden benötigt, um die Anwendung zu starten. mvn erlaubt keinen lib Ordner. Also habe ich die Gläser zum lokalen Maven-Repository hinzugefügt.Beschränken Sie manuell hinzugefügt Abhängigkeiten (zu lokalen .m2) Formular von Remote-Repositorys aktualisiert

Dies funktionierte gut (Bis keine Repositorys in der Pom-Datei deklariert sind), bis ich dem Projekt Spring-batch-admin.version 2.0-BUILD-SNAPSHOT hinzufügen wollte.

Also, wenn ich diese hinzugefügt,

<repository> 
     <id>spring-snapshots-local</id> 
     <name>Spring Maven Snapshot Repository</name> 
     <url>https://repo.spring.io/libs-snapshot-local/</url> 

     <snapshots> 
      <enabled>true</enabled> 
     </snapshots> 
    </repository> 

ich gute Menge an fehlenden Artefakt zu bekommen, und auch wenn ich versuchte mvn install in Befehlszeile auszuführen, erhalte ich,

[ERROR] Failed to execute goal on project webapp: Could not resolve dependencies for project com.ccc.cccc-tool:webapp:war:0.0.1-SNAPSHOT: Failed to collect dependencies at com.ccj:CCjJDBC:jar:1.0: Failed to read artifact descriptor for com.ccj:CCjJDBC:jar:1.0: Could not transfer artifact com.ccc:CCjJDBC:pom:1.0 from/to spring-snapshots-local (https://repo.spring.io/libs-snapshot-local/): Failed to transfer file: https://repo.spring.io/libs-snapshot-local/com/ccj/CCjJDBC/1.0/CCjJDBC-1.0.pom. Return code is: 409 , ReasonPhrase:Conflict. -> [Help 1] 
    [ERROR] 

[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. 
[ERROR] Re-run Maven using the -X switch to enable full debug logging. 
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles: 
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException 

I Ich denke nicht darüber nach, diese Legacy-Jars in den maven central zu laden, um das zum Laufen zu bringen. Was mache ich hier falsch?

+0

Beginnen Sie mit einem Repository-Manager und installieren Sie diese Legacy-Jars in das Repository und danach können Sie sie wie gewohnt Abhängigkeiten nicht besondere Handhabung benötigt mehr .. – khmarbaise

Antwort

0

Versuchen Sie, das lokale Repository in Ihr Projekt einzufügen. Zum Beispiel haben Ihre eine JAR-Datei

group: com.packagename 
artifactId: somejarfile 
version: 2.0.0b 

Dann diesen Code in Ihre pom.xml-Datei hinzu:

<repositories> 
    <repository> 
    <id>localDependenciesRepo</id> 
    <releases> 
     <enabled>true</enabled> 
     <checksumPolicy>ignore</checksumPolicy> 
    </releases> 
    <snapshots> 
     <enabled>false</enabled> 
    </snapshots> 
    <url>file://${project.basedir}/src/main/resources/localDependenciesRepo</url> 
    </repository> 
</repositories> 

Erstellen Sie dann einen Ordner für dieses Repository src/main/resources/localDependenciesRepo. Erstellen Sie eine Ordnerstruktur für die Bibliothek: com -> Paketname -> Somejarfile -> 2.0.0b. "->" bedeutet natürlich einen neuen Ordner. Und legen Sie Ihre JAR-Datei in diesen Ordner. Vergessen Sie nicht, die Datei pom.xml für Ihre JAR-Datei zu kopieren/erstellen. Als Beispiel:

<?xml version="1.0" encoding="UTF-8"?> 
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.packagename</groupId> 
    <artifactId>somejarfile</artifactId> 
    <version>2.0.0b</version> 
</project> 

Zumindest benutze ich diese Lösung und es funktioniert perfekt.

+0

Dies funktionierte danke :) – Jane