2014-11-24 3 views
7

Я пытаюсь представить зависимость от библиотеки касторов в моем pom. Поскольку мой проект находится на предварительном этапе, все артефакты от центрального центра. Поэтому я ищу в search.maven.org для «castor». Я принимаю the first result который дает мне следующий фрагмент кода зависимостей:Не удалось найти артефакт в центральном репо maven, когда поиск возвращает совпадение

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

Теперь я «МВН чистой установки» и получить следующее:

[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] 

Каким образом артефакт, который можно найти на веб-интерфейс не может можно найти в CLI. Я, конечно, чего-то не замечаю. Укажите указатели на то, что это может быть.

Среди других сообщений я просмотрел this и this сообщений, которые связаны, но не эта проблема.

Мой полный П:

<?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> 

ответ

10

Проблема у вас есть, что артефакт, который вы определили как зависимость:

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

определяет jar артефакта, как сообщения об ошибках означает: org.codehaus.castor:castor:jar:1.3.3

Проблема в том, что на Maven Central this kind of artifact does not exist. Он существует только файл pom, но не файл jar.

+1

Спасибо @khmarbaise. Это объясняет проблему. В качестве продолжения: что может быть целью _одно_ разоблачения pom. Для меня цель публикации артефакта в репозитории - позволить другим использовать его. Можно ли зависеть/повторно использовать артефакт только с помощью его pom? – Ram

+3

Цель такого рода артефактов основана на характере проекта, который производит артефакты. Пом является родителем других артефактов, который публикуется в центральном центре. Некоторые проекты предотвращают это, а некоторые нет. – khmarbaise