2014-11-24 3 views
7

Ich versuche eine Abhängigkeit von der Castor-Bibliothek in meinem Pom einzuführen. Da sich mein Projekt in einem vorläufigen Stadium befindet, stammen alle Artefakte von maven central. Also suche ich auf search.maven.org nach "Castor". Ich nehme the first result, die mir die folgende Abhängigkeit Snippet gibt:Konnte Artefakt in maven central Repo nicht finden, wenn Suche eine Übereinstimmung zurückgibt

<dependency> 
    <groupId>org.codehaus.castor</groupId> 
    <artifactId>castor</artifactId> 
    <version>1.3.3</version> 
</dependency> 

Jetzt habe ich „mvn saubere Installation“ und erhalten folgendes:

[ERROR] Failed to execute goal on project jaxb: Could not resolve dependencies for project org.test:jaxb:war:0.0.1-SNAPSHOT: Could not find artifact org.codehaus.castor:castor:jar:1.3.3 in central (https://repo.maven.apache.org/maven2) -> [Help 1] 

Wie kommt ein Artefakt, das von der Web-Oberfläche gefunden werden kann, kann nicht vom CLI gefunden werden. Ich vermisse etwas. Fordern Sie Hinweise auf, was es sein könnte.

Unter anderen Posts habe ich in this und this Beiträge untersucht, die verwandt sind, aber nicht dieses Problem.

mein komplettes pom:

<?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"> 
<modelVersion>4.0.0</modelVersion> 

<groupId>org.test</groupId> 
<artifactId>jaxb</artifactId> 
<version>0.0.1-SNAPSHOT</version> 
<packaging>war</packaging> 

<name>jaxb</name> 
<description>jaxb</description> 

<parent> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-parent</artifactId> 
    <version>1.1.9.RELEASE</version> 
    <relativePath/> <!-- lookup parent from repository --> 
</parent> 

<dependencies> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-web</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-actuator</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-tomcat</artifactId> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-test</artifactId> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.eclipse.persistence</groupId> 
     <artifactId>org.eclipse.persistence.moxy</artifactId> 
     <version>2.6.0-M3</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-oxm</artifactId> 
     <version>4.1.2.RELEASE</version> 
    </dependency> 
    <dependency> 
     <groupId>org.codehaus.castor</groupId> 
     <artifactId>castor</artifactId> 
     <version>1.3.3</version> 
    </dependency> 

</dependencies> 

<properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    <start-class>org.test.jaxb.Application</start-class> 
    <java.version>1.7</java.version> 
</properties> 

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-maven-plugin</artifactId> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>3.2</version> 
      <configuration> 
       <source>1.7</source> 
       <target>1.7</target> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

Antwort

10

Das Problem, das Sie haben, ist, dass das Artefakt, das Sie als eine Abhängigkeit definiert hat:

<dependency> 
    <groupId>org.codehaus.castor</groupId> 
    <artifactId>castor</artifactId> 
    <version>1.3.3</version> 
</dependency> 

einen jar Artefakt als die Fehlermeldungen definiert impliziert: org.codehaus.castor:castor:jar:1.3.3

Das Problem ist, dass auf Maven Central this kind of artifact does not exist. Es existiert nur eine pom Datei, aber keine jar Datei.

+1

Danke @khmarbaise. Das erklärt das Problem. Als Follow-up: Was könnte der Zweck sein, _only_ die Pom eines Artefakts bloßzustellen. Der Zweck der Veröffentlichung eines Artefakts in einem Repository besteht darin, es anderen zugänglich zu machen. Ist es möglich, auf ein Artefakt nur durch Verwendung seiner Pom angewiesen zu sein? – Ram

+3

Der Zweck dieser Art von Artefakten basiert auf der Art des Projekts, das die Artefakte erzeugt. Der Pom ist der Elternteil der anderen Artefakte, die in maven central veröffentlicht werden. Manche Projekte verhindern das und manche nicht. – khmarbaise