2013-07-17 9 views
1

Im пытается загрузить Spring/Java кода из книги, чтобы запустить свой код и протестировать его, но, к сожалению, я получаю ошибки,плагин зависимостей Maven не поддерживается Maven

Я вижу это общая ошибка, но не см исправить мой файл пом,

pom.xml

<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/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <parent> 
     <groupId>com.apress.springrecipes</groupId> 
     <artifactId>core</artifactId> 
     <version>1.0-SNAPSHOT</version> 
    </parent> 
    <artifactId>springintro</artifactId> 
    <name>Introduction to Spring</name> 
    <dependencies> 

     <dependency> 
      <groupId>commons-lang</groupId> 
      <artifactId>commons-lang</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>commons-io</groupId> 
      <artifactId>commons-io</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>org.jboss.javaee</groupId> 
      <artifactId>jboss-jca-api</artifactId> 
     </dependency> 

    </dependencies> 


</project> 

Ошибка

Jul 17, 2013 3:51:20 PM org.springframework.context.support.AbstractApplicationContext prepareRefresh 
INFO: Refreshing org[email protected]be41ec: startup date [Wed Jul 17 15:51:20 EDT 2013]; root of context hierarchy 
Jul 17, 2013 3:51:20 PM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions 
INFO: Loading XML bean definitions from class path resource [beans.xml] 
Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [beans.xml]; nested exception is java.io.FileNotFoundException: class path resource [beans.xml] cannot be opened because it does not exist 
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:341) 
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302) 
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:143) 
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:178) 
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:149) 
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:212) 
    at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:126) 
    at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:92) 
    at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:130) 
    at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:465) 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:395) 
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139) 
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83) 
    at com.apress.springrecipes.hello.Main.main(Main.java:10) 
Caused by: java.io.FileNotFoundException: class path resource [beans.xml] cannot be opened because it does not exist 
    at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:141) 
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:328) 
    ... 13 more 

Ошибка файла Pom:

maven-dependency-plugin (goals "copy-dependencies", "unpack") is not supported by m2e. 
maven-resources-plugin prior to 2.4 is not supported by m2e. Use maven-resources-plugin version 2.4 or later. 
+0

У вас есть bean.xml в любом месте приложения? –

+0

Да, у меня это под проектом – user1050619

ответ

2

m2e не Maven. Ошибка файла POM говорит, что плагин Maven Eclipse (m2e) не знает, что делать с «копиями-зависимостями»: «распаковать» цель. Способ, которым работает m2e, должен понять, что делает цель в файле pom, чтобы он мог дублировать это поведение в сборке Eclipse.

Есть еще две основные вещи, которые вы можете сделать:

  1. Сообщить Затмения игнорировать цель - это позволит вам не получить сообщение об ошибке. Этот шаг распаковки никогда не будет возникать во время инкрементных сборок Eclipse, это все равно произойдет, когда вы будете делать полные сборки Maven.
  2. Установите «соединитель», который сообщает Eclipse, что делать, когда он сталкивается с этой целью. Разъем для этой цели можно найти here.

Что касается модуля maven-resources-plugin, я не вижу другого варианта, кроме обновления версии плагина, указанной в POM. Ошибка там говорит о том, что плагин Maven Eclipse не может работать с плагинами Maven, которые были старыми.

Я понятия не имею, что вызывает ошибку файла, но подозреваю, что это потому, что этот файл содержится в том, что Eclipse не распаковывает.

+0

Я только что установил Maven Integration для Eclipse, но все-таки получаю старую ошибку версии – user1050619

+1

Ошибка не в том, что m2e (интеграция Maven для Eclipse) слишком стар для Maven, но ваши плагины, определенные в Файл pom.xml слишком устарел для m2e. Я предполагаю, что книга, которую вы читаете, не использовала Eclipse или использовала очень старую версию Eclipse. Вам нужно будет изменить файлы, которые они предоставляют, начиная с обновления версии плагина maven-resources, который должен быть указан в файле pom.xml. – Pace

+0

Мне удалось исправить это, переместив beans.xml в правильную папку. Похоже, что он не смог загрузить файл beans ... но все же я вижу ошибки в файле pom.xml ... Как я знаю версия maven-resource-plugin ... Должен ли я просто пойти и обновить тег файла xml ... спасибо за ваше время – user1050619

3

Что сказал @Pace полностью, и я считаю, что OP должен попытаться понять, что делает мэйн. Лично я ненавижу поведение m2e после 0.10, для которого они ввели концепцию соединителя. Концепция хороша, но способ сказать Eclipse, как реагировать на неподдерживаемые плагины, серьезно загрязняет POM, который выглядит ужасно для меня. Переход на более старую версию M2E может облегчить вашу жизнь, хотя вы потеряете какую-то особенность.

Возвращаясь к вашему вопросу, с сообщения об ошибке цитируемой:

maven-resources-plugin prior to 2.4 is not supported by m2e. Use maven-resources-plugin version 2.4 or later.

кажется предложить мне, что m2e сделал поддержку Maven-ресурсы-плагин> = 2,4 (я не уверен, я гавань столкнулись с подобной проблемой, как раньше). Попытайтесь использовать более новую версию (2.4 или после, последняя версия 2.6) плагина maven-resources в вашем POM, M2E может получить настройки для вас.

т.е.

<project> 
... 
    <build> 
    <pluginManagement> 
     <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-resources-plugin</artifactId> 
      <version>2.6</version> 
     </plugin> 
     </plugins> 
     .... 
    </pluginManagement> 
     .... 
    </build> 
</project> 

это всегда хорошая практика, чтобы отпечатать версии плагинов вы использовали. Это приводит к более «воспроизводимой» сборке.

+0

Позже Eclipses хранит информацию о плагине вне POM, в .settings, поэтому они Исправлено это ужасное предложение. –

+0

круто! Я следил за прогрессом в этом, но сдался год назад: P Рад услышать отличную новость –

Смежные вопросы