2015-05-14 67 views
0

我正在嘗試將我的AWS SWF工作流程移至Maven。我和Eclipse一起使用了maven。使用Eclipse我啓用了註釋。但它顯示註釋錯誤。爲什麼Maven不能構建解析@Override註釋?

PFB我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/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>solution.heavywater</groupId> 
    <artifactId>HW</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <packaging>jar</packaging> 

    <name>AWS SDK for Java Sample</name> 
    <url>http://aws.amazon.com/sdkforjava</url> 
<properties> 
    <aws-version>1.9.13</aws-version> 
    <powermock.version>1.6.1</powermock.version> 
    <aspectjweaver.version>1.7.4</aspectjweaver.version> 
    <slf4j.version>1.7.10</slf4j.version> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    <javancss.source.base>../all-sources</javancss.source.base> 
    </properties> 
    <dependencies> 
    <dependency> 
     <groupId>com.amazonaws</groupId> 
     <artifactId>aws-java-sdk</artifactId> 
     <version>[1.7.2,2.0.0)</version> 
    </dependency> 
    <dependency> 
      <groupId>org.aspectj</groupId> 
      <artifactId>aspectjweaver</artifactId> 
      <version>${aspectjweaver.version}</version>  
     </dependency> 
     <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-api</artifactId> 
      <version>${slf4j.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-log4j12</artifactId> 
      <version>${slf4j.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-simple</artifactId> 
      <version>${slf4j.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>com.amazonaws</groupId> 
      <artifactId>aws-java-sdk-s3</artifactId> 
      <version>${aws-version}</version> 
     </dependency> 
     <dependency> 
      <groupId>com.amazonaws</groupId> 
      <artifactId>aws-java-sdk-dynamodb</artifactId> 
      <version>${aws-version}</version> 
     </dependency> 
     <dependency> 
      <groupId>com.amazonaws</groupId> 
      <artifactId>aws-java-sdk-sns</artifactId> 
      <version>${aws-version}</version> 
     </dependency> 
     <dependency> 
      <groupId>com.amazonaws</groupId> 
      <artifactId>aws-java-sdk-sqs</artifactId> 
      <version>${aws-version}</version> 
     </dependency> 
     <dependency> 
      <groupId>commons-lang</groupId> 
      <artifactId>commons-lang</artifactId> 
      <version>2.6</version> 
     </dependency> 
     <dependency> 
      <groupId>commons-collections</groupId> 
      <artifactId>commons-collections</artifactId> 
      <version>3.2.1</version> 
     </dependency> 
     <dependency> 
      <groupId>commons-configuration</groupId> 
      <artifactId>commons-configuration</artifactId> 
      <version>1.6</version> 
     </dependency> 
     <dependency> 
      <groupId>com.amazonaws</groupId> 
      <artifactId>aws-java-sdk-swf-libraries</artifactId> 
      <version>${aws-version}</version> 
     </dependency> 
     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>4.7</version> 
     </dependency> 
     <dependency> 
      <groupId>org.mockito</groupId> 
      <artifactId>mockito-all</artifactId> 
      <version>1.10.8</version> 
     </dependency> 
     <dependency> 
      <groupId>org.powermock</groupId> 
      <artifactId>powermock-module-junit4</artifactId> 
      <version>${powermock.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.powermock</groupId> 
      <artifactId>powermock-api-mockito</artifactId> 
      <version>${powermock.version}</version> 
     </dependency> 
    <dependency> 
     <groupId>net.sourceforge.cobertura</groupId> 
     <artifactId>cobertura</artifactId> 
     <version>2.0.3</version> 
     <exclusions> 
     <exclusion> 
      <artifactId>tools</artifactId> 
      <groupId>com.sun</groupId> 
     </exclusion> 
     <exclusion> 
      <artifactId>xalan</artifactId> 
      <groupId>xalan</groupId> 
     </exclusion> 
     <exclusion> 
      <artifactId>xercesImpl</artifactId> 
      <groupId>xerces</groupId> 
     </exclusion> 
     </exclusions> 
    </dependency> 
    <dependency> 
     <groupId>xalan</groupId> 
     <artifactId>xalan</artifactId> 
     <version>2.7.2</version> 
    </dependency> 
    <dependency> 
     <groupId>xerces</groupId> 
     <artifactId>xercesImpl</artifactId> 
     <version>2.11.0</version>   
    </dependency> 
    <dependency> 
     <groupId>org.zeroturnaround</groupId> 
     <artifactId>zt-zip</artifactId> 
     <version>1.8</version>   
    </dependency> 
    <dependency> 
    <groupId>com.itextpdf</groupId> 
    <artifactId>itextpdf</artifactId> 
    <version>5.5.5</version> 
</dependency> 

    <dependency> 
     <groupId>commons-httpclient</groupId> 
     <artifactId>commons-httpclient</artifactId> 
     <version>3.1</version> 
    </dependency> 
    <dependency> 
     <groupId>commons-logging</groupId> 
     <artifactId>commons-logging</artifactId> 
     <version>1.2</version> 
    </dependency> 
    <dependency> 
    <groupId>commons-io</groupId> 
    <artifactId>commons-io</artifactId> 
    <version>2.4</version> 
    </dependency> 
    <dependency> 
    <groupId>org.json</groupId> 
    <artifactId>json</artifactId> 
    <version>20140107</version> 
</dependency> 
    <dependency> 
    <groupId>org.im4java</groupId> 
    <artifactId>im4java</artifactId> 
    <version>1.4.0</version> 
</dependency> 


</dependencies> 


<build> 
    <pluginManagement> 
     <plugins> 
     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>sonar-maven-plugin</artifactId> 
      <version>2.5</version> 
     </plugin> 
     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>javancss-maven-plugin</artifactId> 
      <version>2.1</version> 
     </plugin> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-checkstyle-plugin</artifactId> 
     <version>2.14</version> 
     </plugin> 
     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>xml-maven-plugin</artifactId> 
      <version>1.0</version> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-surefire-plugin</artifactId> 
      <version>2.18.1</version> 
     </plugin> 
     <plugin> 
      <artifactId>maven-antrun-plugin</artifactId> 
      <version>1.8</version> 
     </plugin> 
     <plugin> 
      <artifactId>maven-dependency-plugin</artifactId> 
      <version>2.8</version> 
     </plugin> 
     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>build-helper-maven-plugin</artifactId> 
      <version>1.8</version> 
     </plugin> 
     <plugin> 
      <groupId>com.jcabi</groupId> 
      <artifactId>jcabi-dynamodb-maven-plugin</artifactId> 
      <version>0.7.1</version> 
     </plugin> 
     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>exec-maven-plugin</artifactId> 
      <version>1.3.2</version> 
     </plugin> 
     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>properties-maven-plugin</artifactId> 
      <version>1.0-alpha-2</version> 
     </plugin> 
     <!--This plugin's configuration is used to store Eclipse m2e settings only. 
     It has no influence on the Maven build itself.--> 
     <plugin> 
      <groupId>org.eclipse.m2e</groupId> 
      <artifactId>lifecycle-mapping</artifactId> 
      <version>1.0.0</version> 
      <configuration> 
       <lifecycleMappingMetadata> 
        <pluginExecutions> 
         <pluginExecution> 
          <pluginExecutionFilter> 
           <groupId> 
            org.apache.maven.plugins 
           </groupId> 
           <artifactId> 
            maven-antrun-plugin 
           </artifactId> 
           <versionRange>[0,100]</versionRange> 
           <goals> 
            <goal>run</goal> 
           </goals> 
          </pluginExecutionFilter> 
          <action> 
           <ignore></ignore> 
          </action> 
         </pluginExecution> 
         <pluginExecution> 
          <pluginExecutionFilter> 
           <groupId>org.codehaus.mojo</groupId> 
           <artifactId> 
            build-helper-maven-plugin 
           </artifactId> 
           <versionRange>[0,)</versionRange> 
           <goals> 
            <goal>regex-property</goal> 
           </goals> 
          </pluginExecutionFilter> 
          <action> 
           <ignore></ignore> 
          </action> 
         </pluginExecution> 
         <pluginExecution> 
          <pluginExecutionFilter> 
           <groupId>org.codehaus.mojo</groupId> 
           <artifactId> 
            properties-maven-plugin 
           </artifactId> 
           <versionRange>[0.0,100]</versionRange> 

           <goals> 
            <goal>read-project-properties</goal> 
           </goals> 
          </pluginExecutionFilter> 
          <action> 
           <ignore></ignore> 
          </action> 
         </pluginExecution> 
        </pluginExecutions> 
       </lifecycleMappingMetadata> 
      </configuration> 
     </plugin> 
     </plugins> 
    </pluginManagement> 

    <plugins> 
     <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>build-helper-maven-plugin</artifactId> 
     <executions> 
      <execution> 
      <id>regex-property</id> 
      <phase>initialize</phase> 
      <goals> 
       <goal>regex-property</goal> 
      </goals> 
      <configuration> 
       <name>top.root.dir</name> 
       <value>${session.executionRootDirectory}</value> 
       <regex>WONT_FIND_ME_HACK</regex> 
       <replacement>WONT_FIND_ME_HACK</replacement> 
       <failIfNoMatch>false</failIfNoMatch> 
      </configuration> 
      </execution> 
     </executions> 
     </plugin> 

     <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>properties-maven-plugin</artifactId> 
     <executions> 
      <execution> 
      <phase>compile</phase> 
      <goals> 
       <goal>read-project-properties</goal> 
      </goals> 
      <configuration> 
       <files> 
       <file>${session.executionRootDirectory}/target/dynamo.properties</file> 
       <file>${session.executionRootDirectory}/checkstyle-max-violations.properties</file> 
       </files> 
       <quiet>true</quiet> 
      </configuration> 
      </execution> 
     </executions> 
     </plugin> 

     <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>javancss-maven-plugin</artifactId> 
     <executions> 
      <execution> 
      <id>javancss</id> 
      <phase>verify</phase> 
      <goals> 
       <goal>report</goal> 
      </goals> 
      </execution> 

     </executions> 
     </plugin> 

     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-checkstyle-plugin</artifactId> 
     <configuration combine.self="override"> 
      <configLocation>src/test/resources/checkstyle-rules.xml</configLocation> 
      <suppressionsLocation>checkstyle-suppressions.xml</suppressionsLocation> 
     </configuration> 
     <executions> 
      <execution> 
      <id>checkstyle</id> 
      <phase>verify</phase> 
      <goals> 
       <goal>check</goal> 
      </goals> 
      </execution> 
     </executions> 
     </plugin> 

     <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>xml-maven-plugin</artifactId> 
     <executions> 
      <execution> 
      <id>transform-results</id> 
      <phase>verify</phase> 
      <goals> 
       <goal>transform</goal> 
      </goals> 
      </execution> 
     </executions> 
     <configuration> 
      <transformationSets> 
      <transformationSet> 
       <dir>target</dir> 
       <includes> 
       <include>checkstyle-result.xml</include> 
       </includes> 
       <stylesheet>${session.executionRootDirectory}/src/test/resources/checkstyle-results.xsl</stylesheet> 
       <outputDir>target/checkstyle-reports</outputDir> 
       <fileMappers> 
       <fileMapper implementation="org.codehaus.plexus.components.io.filemappers.FileExtensionMapper"> 
        <targetExtension>.html</targetExtension> 
       </fileMapper> 
       </fileMappers> 
      </transformationSet> 
      </transformationSets> 
     </configuration> 
     </plugin> 

     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-surefire-plugin</artifactId> 
     <configuration> 
      <systemPropertyVariables> 
      <dynamodb.port>${dynamodblocal.port}</dynamodb.port> 
      </systemPropertyVariables> 
      <classesDirectory>target/instrumented</classesDirectory> 
      <failIfNoTests>false</failIfNoTests> 
     </configuration> 
     </plugin> 

     <plugin> 
     <artifactId>maven-antrun-plugin</artifactId> 
     <executions> 
      <execution> 
      <id>javancss-report</id> 

      <phase>verify</phase> 
      <configuration> 
       <target> 
       <echoproperties/> 

       <mkdir dir="target/javancss-reports"/> 
       <xslt taskname="javancss" 
         in="target/javancss-raw-report.xml" 
         out="target/javancss-reports/javancss-report.html" 
         processor="trax" 
         classpathref="maven.plugin.classpath" 
         style="${top.root.dir}/src/test/resources/javancss2methodhtml.xsl" 
         failOnError="no"> 
        <factory name="net.sf.saxon.TransformerFactoryImpl"/> 
        <param name="sourcePrefix" expression="../../src/main/java"/> 
       </xslt> 
       </target> 
      </configuration> 
      <goals> 
       <goal>run</goal> 
      </goals> 
      </execution> 

      <execution> 
      <id>cobertura-instrument</id> 

      <phase>process-classes</phase> 
      <configuration> 
       <target> 
       <taskdef classpathref="maven.test.classpath" resource="tasks.properties"/> 
       <taskdef classpathref="maven.plugin.classpath" resource="net/sf/antcontrib/antcontrib.properties"/> 

       <!-- hack for the parent modules --> 
       <if> 
        <or> 
        <equals arg1="${project.name}" arg2="ldr"/> 
        <equals arg1="${project.name}" arg2="ldr-mapper"/> 
        <equals arg1="${project.name}" arg2="ldr-workflow"/> 
        <equals arg1="${project.name}" arg2="ecm-workflow"/> 
        <equals arg1="${project.name}" arg2="ldr-test-merge"/> 
        <equals arg1="${project.name}" arg2="ldr-preliminary"/> 
        <equals arg1="${project.name}" arg2="ldr-cleanup"/> 
        <equals arg1="${project.name}" arg2="ldr-helpers"/> 
        <equals arg1="${project.name}" arg2="ephesoft-extraction"/> 
        <equals arg1="${project.name}" arg2="acceptance-test"/> 
        </or> 

        <then> 
        <mkdir dir="target/classes"/> 
        <mkdir dir="src/main/java"/> 
        </then> 
       </if> 
       <mkdir dir="target/instrumented"/> 

       <cobertura-instrument todir="target/instrumented"> 
        <fileset dir="target/classes"> 
        <include name="**/*.class"/> 
        </fileset> 
       </cobertura-instrument> 

       <copy todir="target/instrumented"> 
        <fileset dir="target/classes"> 
        <include name="**/*"/>    
        </fileset> 
       </copy> 

       <!-- hack for the parent module --> 
       <if> 
        <or> 
        <equals arg1="${project.name}" arg2="ldr"/> 
        <equals arg1="${project.name}" arg2="ldr-mapper"/> 
        <equals arg1="${project.name}" arg2="ldr-workflow"/> 
        <equals arg1="${project.name}" arg2="ecm-workflow"/> 
        <equals arg1="${project.name}" arg2="ldr-test-merge"/> 
        <equals arg1="${project.name}" arg2="ldr-preliminary"/> 
        <equals arg1="${project.name}" arg2="ldr-cleanup"/> 
        <equals arg1="${project.name}" arg2="ldr-helpers"/> 
        <equals arg1="${project.name}" arg2="ephesoft-extraction"/> 
        <equals arg1="${project.name}" arg2="acceptance-test"/> 
        </or> 
        <then> 
        <delete dir="target/classes"/> 
        <delete dir="src/main/java"/> 
        </then> 
       </if> 
       </target> 
      </configuration> 
      <goals> 
       <goal>run</goal> 
      </goals> 
      </execution> 

      <execution> 
      <id>cobertura-report</id> 

      <phase>verify</phase> 
      <configuration> 
       <target> 
       <taskdef classpathref="maven.test.classpath" resource="tasks.properties"/> 

       <mkdir dir="target/cobertura-reports"/> 

       <cobertura-report datafile="cobertura.ser" 
            format="xml" 
            destdir="target/cobertura-reports" 
            srcdir="${basedir}/src/main/java"/> 

       <cobertura-report datafile="cobertura.ser" 
            format="html" 
            destdir="target/cobertura-reports" 
            srcdir="${basedir}/src/main/java"/> 


       <!-- cobertura-check failureproperty="cobertura.failure" 
           datafile="${cobertura.ser.file}" 
           haltonfailure="false" 
           linerate="0" 
           packagebranchrate="0" 
           packagelinerate="0" 
           totalbranchrate="25" 
           totallinerate="30"/ --> 
       </target> 
      </configuration> 
      <goals> 
       <goal>run</goal> 
      </goals> 
      </execution> 

     </executions> 
     <dependencies> 
      <dependency> 
      <groupId>ant-contrib</groupId> 
      <artifactId>ant-contrib</artifactId> 
      <version>20020829</version> 
      </dependency> 
      <dependency> 
      <groupId>net.sf.saxon</groupId> 
      <artifactId>saxon</artifactId> 
      <version>8.7</version> 
      </dependency> 
     </dependencies> 
     </plugin> 
    </plugins> 
    </build> 

</project> 

我是比較新的Maven的。我在windows平臺中使用apache-maven-3.3.3和J2SE 1.5。我所有的JAVA軟件包都駐留在/ src/main/java中。

+0

*什麼*註解錯誤?爲什麼你使用古老的Java版本? – chrylis

+0

我得到註解錯誤「ClassName類型的方法Classify(String,String,String)必須覆蓋超類方法」。在代碼中我重寫了這個方法。我改爲jre7 –

+0

因此發佈'ClassName'。 (如果您使用Java標準命名,那麼您的代碼將更容易使用,其中方法名稱以小寫字母開頭。) – chrylis

回答

1

在Java 1.6中更改了@Override註釋規範。在Java 1.5中,編譯器不允許在已實現的接口方法上使用@Override註釋,但是在1.6中它可以。

+0

我改爲jre7。錯誤尚未解決:( –

+0

使用JDK 7而不是JRE,如果您使用的是Eclipse,請確保更新編譯器版本,如果您右鍵單擊該項目,請轉至Java Build Path,並確保它指向jdk 7 。同樣在項目方面,確保它使用Java 7而不是Java 5.本質上,項目的一部分可能仍然使用Java 5。 – david99world