无法执行目标org.apache.maven.plugins:maven-compiler-plugin:2.3.2:项目acme-module上的compile(default-compile):编译失败:

时间:2015-03-06 10:27:34

标签: java spring maven magnolia

我根据本指南做了所有事情:https://documentation.magnolia-cms.com/display/DOCS/Getting+started+with+Blossom

我在尝试按照上一步操作时遇到这些错误,mvn install(mvn clean工作正常)。这是mvn clean install

之后的输出
tests-imac:acme test$ mvn clean install
[INFO] Scanning for projects...
[WARNING] 
[WARNING] Some problems were encountered while building the effective model for com.acme:acme-webapp:war:1.0-SNAPSHOT
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-war-plugin is missing. @ com.acme:acme-webapp:[unknown-version], /Users/staz/blossomproj/acme/acme-webapp/pom.xml, line 35, column 15
[WARNING] 
[WARNING] Some problems were encountered while building the effective model for com.acme:acme-module:jar:1.0-SNAPSHOT
[WARNING] 'dependencies.dependency.(groupId:artifactId:type:classifier)' must be unique: javax.servlet:servlet-api:jar -> version 2.4 vs 2.5 @ line 77, column 17
[WARNING] 
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING] 
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
[WARNING] 
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO] 
[INFO] acme (parent pom)
[INFO] acmeModule Magnolia Module
[INFO] acme: webapp
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building acme (parent pom) 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ acme ---
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ acme ---
[INFO] Installing /Users/staz/blossomproj/acme/pom.xml to /Users/test/.m2/repository/com/acme/acme/1.0-SNAPSHOT/acme-1.0-SNAPSHOT.pom
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building acmeModule Magnolia Module 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ acme-module ---
[INFO] Deleting /Users/staz/blossomproj/acme/acme-module/target
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ acme-module ---
[WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent!
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 1 resource
[INFO] Copying 1 resource
[INFO] 
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ acme-module ---
[WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent!
[INFO] Compiling 4 source files to /Users/staz/blossomproj/acme/acme-module/target/classes
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
[ERROR] /Users/staz/blossomproj/acme/acme-module/src/main/java/com/acme/AcmeModule.java:[17,17] error: no suitable method found for initRootWebApplicationContext(Class<AcmeModuleConfiguration>)
[ERROR]     method BlossomModuleSupport.initRootWebApplicationContext(ContextLoader) is not applicable
      (actual argument Class<AcmeModuleConfiguration> cannot be converted to ContextLoader by method invocation conversion)
    method BlossomModuleSupport.initRootWebApplicationContext(String) is not applicable
      (actual argument Class<AcmeModuleConfiguration> cannot be converted to String by method invocation conversion)
/Users/staz/blossomproj/acme/acme-module/src/main/java/com/acme/AcmeModule.java:[18,17] error: method initBlossomDispatcherServlet in class BlossomModuleSupport cannot be applied to given types;
[ERROR]  actual argument Class<BlossomServletConfiguration> cannot be converted to String by method invocation conversion
/Users/staz/blossomproj/acme/acme-module/src/main/java/com/acme/BlossomServletConfiguration.java:[88,22] error: cannot find symbol
[ERROR]  variable handlerMapping of type BlossomHandlerMapping
/Users/staz/blossomproj/acme/acme-module/src/main/java/com/acme/BlossomServletConfiguration.java:[140,20] error: method addContextAttribute in class AbstractRenderer cannot be applied to given types;
[ERROR]  actual argument Class<Directives> cannot be converted to ContextAttributeConfiguration by method invocation conversion
/Users/staz/blossomproj/acme/acme-module/src/main/java/com/acme/BlossomServletConfiguration.java:[141,20] error: method addContextAttribute in class AbstractRenderer cannot be applied to given types;
[INFO] 5 errors 
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] 
[INFO] acme (parent pom) .................................. SUCCESS [  0.869 s]
[INFO] acmeModule Magnolia Module ......................... FAILURE [  5.262 s]
[INFO] acme: webapp ....................................... SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 7.003 s
[INFO] Finished at: 2015-03-06T12:01:46+01:00
[INFO] Final Memory: 23M/183M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project acme-module: Compilation failure: Compilation failure:
[ERROR] /Users/staz/blossomproj/acme/acme-module/src/main/java/com/acme/AcmeModule.java:[17,17] error: no suitable method found for initRootWebApplicationContext(Class<AcmeModuleConfiguration>)
[ERROR] method BlossomModuleSupport.initRootWebApplicationContext(ContextLoader) is not applicable
[ERROR] (actual argument Class<AcmeModuleConfiguration> cannot be converted to ContextLoader by method invocation conversion)
[ERROR] method BlossomModuleSupport.initRootWebApplicationContext(String) is not applicable
[ERROR] (actual argument Class<AcmeModuleConfiguration> cannot be converted to String by method invocation conversion)
[ERROR] /Users/staz/blossomproj/acme/acme-module/src/main/java/com/acme/AcmeModule.java:[18,17] error: method initBlossomDispatcherServlet in class BlossomModuleSupport cannot be applied to given types;
[ERROR] actual argument Class<BlossomServletConfiguration> cannot be converted to String by method invocation conversion
[ERROR] /Users/staz/blossomproj/acme/acme-module/src/main/java/com/acme/BlossomServletConfiguration.java:[88,22] error: cannot find symbol
[ERROR] variable handlerMapping of type BlossomHandlerMapping
[ERROR] /Users/staz/blossomproj/acme/acme-module/src/main/java/com/acme/BlossomServletConfiguration.java:[140,20] error: method addContextAttribute in class AbstractRenderer cannot be applied to given types;
[ERROR] actual argument Class<Directives> cannot be converted to ContextAttributeConfiguration by method invocation conversion
[ERROR] /Users/staz/blossomproj/acme/acme-module/src/main/java/com/acme/BlossomServletConfiguration.java:[141,20] error: method addContextAttribute in class AbstractRenderer cannot be applied to given types;
[ERROR] -> [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/MojoFailureException
[ERROR] 
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR]   mvn <goals> -rf :acme-module

Magnolia版本 - 5.3.7 EE Blossom模块版本 - 3.0.5

的pom.xml

    <?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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <artifactId>acme</artifactId>
    <groupId>com.acme</groupId>
    <version>1.0-SNAPSHOT</version>
  </parent>
  <groupId>com.acme</groupId>
  <artifactId>acme-module</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>jar</packaging>
  <name>acmeModule Magnolia Module</name>
  <!--
  <description>Please uncomment and fill in ...</description>
  -->
  <properties>
    <magnoliaVersion>5.3.7</magnoliaVersion>
    <javaVersion>1.6</javaVersion>
    <blossomVersion>3.0.5</blossomVersion>
    <springVersion>4.1.4.RELEASE</springVersion>
  </properties>

  <dependencies>
<dependency>
  <groupId>javax.servlet</groupId>
  <artifactId>servlet-api</artifactId>
  <version>2.4</version>
</dependency>
    <dependency>
      <groupId>info.magnolia</groupId>
      <artifactId>magnolia-core</artifactId>
      <version>${magnoliaVersion}</version>
    </dependency>
    <dependency>
      <groupId>info.magnolia</groupId>
      <artifactId>magnolia-rendering</artifactId>
      <version>${magnoliaVersion}</version>
    </dependency>
    <dependency>
      <groupId>info.magnolia</groupId>
      <artifactId>magnolia-templating</artifactId>
      <version>${magnoliaVersion}</version>
    </dependency>
    <dependency>
      <groupId>info.magnolia</groupId>
      <artifactId>magnolia-templating-jsp</artifactId>
      <version>${magnoliaVersion}</version>
    </dependency>
    <dependency>
      <groupId>info.magnolia.blossom</groupId>
      <artifactId>magnolia-module-blossom</artifactId>
      <version>${blossomVersion}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>${springVersion}</version>
      <exclusions>
        <exclusion>
          <groupId>commons-logging</groupId>
          <artifactId>commons-logging</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-aop</artifactId>
      <version>${springVersion}</version>
      <exclusions>
        <exclusion>
          <groupId>commons-logging</groupId>
          <artifactId>commons-logging</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>servlet-api</artifactId>
      <version>2.5</version>
      <scope>provided</scope>
    </dependency>
    <!-- For @Valid - JSR-303 Bean Validation API -->
    <dependency>
      <groupId>org.hibernate</groupId>
      <artifactId>hibernate-validator</artifactId>
      <version>4.3.1.Final</version>
    </dependency>

    <!-- TEST -->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>2.3.2</version>
        <configuration>
          <source>${javaVersion}</source>
          <target>${javaVersion}</target>
        </configuration>
      </plugin>
    </plugins>

    <!-- default resources configuration which will filter the module descriptor -->
    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <includes>
          <include>**/*</include>
        </includes>
      </resource>
      <resource>
        <filtering>true</filtering>
        <directory>src/main/resources</directory>
        <includes>
          <include>META-INF/magnolia/*</include>
        </includes>
      </resource>
    </resources>
  </build>

  <repositories>
    <repository>
      <id>magnolia.public</id>
      <url>https://nexus.magnolia-cms.com/content/groups/public</url>
      <snapshots>
      </snapshots>
    </repository>

    <repository>
      <id>magnolia.enterprise.releases</id>
      <url>https://nexus.magnolia-cms.com/content/repositories/magnolia.enterprise.releases</url>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
    </repository>

    <repository>
      <id>vaadin-addons</id>
      <url>https://maven.vaadin.com/vaadin-addons</url>
    </repository>
  </repositories>

</project>

2 个答案:

答案 0 :(得分:2)

关于警告

[WARNING] 'dependencies.dependency.(groupId:artifactId:type:classifier)' must be unique: javax.servlet:servlet-api:jar -> version 2.4 vs 2.5 @ line 77, column 17

您可能有一个需要javax.servlet:servlet-api:2.5的瞬态依赖项,但您已定义javax.servlet:servlet-api:2.4

您可以从javax.servlet:servlet-api:2.4切换到javax.servlet:servlet-api:2.5,也可以为javax.servlet:servlet-api:2.5依赖项添加其他排除项。使用mvn dependency:list找出哪个依赖项提供了瞬态依赖。

然后又出现了另一个警告

[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-war-plugin is missing. @ com.acme:acme-webapp:[unknown-version], /Users/staz/blossomproj/acme/acme-webapp/pom.xml, line 35, column 15

添加     [...]

&#13;
&#13;
...
    <build>
      <pluginManagement>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.4</version>
          </plugin>
        </plugins>
      </pluginManagement>
    </build>
...
&#13;
&#13;
&#13;

给你pom.xml

答案 1 :(得分:2)

昨天发布了Blossom 3.0.6,以便更容易使用Spring java配置。随着BlossomModuleSupport获得了使用配置类初始化应用程序上下文和servlet的新方法。这些是无法找到的破坏编译的方法。

通过这种方式,您正在使用的原型快照版本已更新,以生成使用Spring java配置的项目,从而生成这些新方法。

所以,你需要使用3.0.6的原型,一切都应该没问题。

相关问题