簡體   English   中英

Maven不支持Maven依賴插件

[英]Maven dependency plugin not supported by maven

我試圖從書中下載Spring / Java代碼以運行其代碼並對其進行測試,但不幸的是,我遇到了錯誤,

我看到這是一個常見錯誤,但沒有看到針對我的pom文件的修復程序,

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.springframework.context.support.ClassPathXmlApplicationContext@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.

@Pace所說的完全是正確的,我相信OP應該嘗試了解m2e在做什么。 我個人討厭0.10之后的m2e行為,為此他們引入了連接器概念。 這個概念很好,但是告訴Eclipse如何對不受支持的插件做出反應的方法是嚴重污染POM,這對我來說很糟糕。 盡管失去了某些功能,但切換回較舊的M2E版本可能會使您的生活更輕松。

回到您的問題,從您引用的錯誤消息中:

m2e不支持2.4之前的maven-resources-plugin。 使用maven-resources-plugin 2.4或更高版本。

在我看來,m2e確實支持maven-resources-plugin> = 2.4(我不確定,我之前沒有遇到過類似的問題)。 嘗試在POM中使用maven-resources-plugin的較新版本(2.4或更高版本,最新為2.6),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>

標記您使用的插件的版本始終是一個好習慣。 這導致更“可復制”的構建。

m2e不是Maven。 POM文件錯誤表明Eclipse的Maven插件(m2e)不知道該如何處理“復制依賴項”:“解壓”目標。 m2e的工作方式必須理解目標在pom文件中的作用,以便它可以在Eclipse構建中復制該行為。

您可以做兩件事:

  1. 告訴Eclipse忽略目標-這將使您不會出錯。 在Eclipse增量構建期間,將永遠不會執行該拆包步驟,而在進行完整的Maven構建時,仍然會執行該步驟。
  2. 安裝一個“連接器”,告訴Eclipse在達到該目標時該怎么做。 可在此處找到用於該目標的連接器。

至於maven-resources-plugin,除了升級POM中指定的插件版本外,沒有其他選擇。 那里的錯誤是說Eclipse的Maven插件不能與舊的Maven插件一起使用。

我不知道是什么導致文件未找到錯誤,但是懷疑是因為該文件包含在Eclipse未解包的任何地方。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM