2016-11-30 20 views
0

我是Maven的新手,我正在嘗試編寫一小段Java代碼。我包括一些軟件包。 Maven似乎下載了所有我期望需要的東西,但是在編譯時卻失敗了,說它找不到特定的類。錯誤進一步說明它找不到我的任何進口產品。有人能告訴我我錯過了什麼嗎?Maven在下載依賴後找不到類

這是我的代碼:

package in.myscratchpad.app; 

import com.amazonaws.AmazonClientException; 
import com.amazonaws.AmazonServiceException; 
import com.amazonaws.auth.AWSCredentials; 
import com.amazonaws.auth.profile.ProfileCredentialsProvider; 
import com.amazonaws.regions.Region; 
import com.amazonaws.regions.Regions; 
import com.amazonaws.services.dynamodb.AmazonDynamoDBClient; 

/** 
* Hello world! 
* 
*/ 
public class App 
{ 
    public static void main(String[] args) 
    { 
     System.out.println("Hello World!"); 
     AmazonDynamoDBClientBuilder builder = AmazonDBClientBuilder.standard(); 
    } 
} 

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

    <groupId>in.myscratchpad.app</groupId> 
    <artifactId>my-app</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <packaging>jar</packaging> 

    <name>my-app</name> 
    <url>http://maven.apache.org</url> 
<build> 
    <plugins> 
    <plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-jar-plugin</artifactId> 
    <version>2.4</version> 
    <configuration> 
     <archive> 
     <manifest> 
      <mainClass>in.myscratchpad.app.App</mainClass> 
     </manifest> 
     </archive> 
    </configuration> 
    </plugin> 
    </plugins> 
</build> 
    <properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 
    <dependencies> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>3.8.1</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>com.amazonaws</groupId> 
     <artifactId>aws-java-sdk</artifactId> 
     <version>1.11.60</version> 
     <type>pom</type> 
     <scope>import</scope> 
    </dependency> 
    </dependencies> 
</project> 

這是我得到的錯誤:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project my-app: Compilation failure: Compilation failure: 
[ERROR] /home/ec2-user/projects/kinesisProducer1/my-app/src/main/java/in/myscratchpad/app/App.java:[3,21] package com.amazonaws does not exist 
[ERROR] /home/ec2-user/projects/kinesisProducer1/my-app/src/main/java/in/myscratchpad/app/App.java:[4,21] package com.amazonaws does not exist 
[ERROR] /home/ec2-user/projects/kinesisProducer1/my-app/src/main/java/in/myscratchpad/app/App.java:[5,26] package com.amazonaws.auth does not exist 
[ERROR] /home/ec2-user/projects/kinesisProducer1/my-app/src/main/java/in/myscratchpad/app/App.java:[6,34] package com.amazonaws.auth.profile does not exist 
[ERROR] /home/ec2-user/projects/kinesisProducer1/my-app/src/main/java/in/myscratchpad/app/App.java:[7,29] package com.amazonaws.regions does not exist 
[ERROR] /home/ec2-user/projects/kinesisProducer1/my-app/src/main/java/in/myscratchpad/app/App.java:[8,29] package com.amazonaws.regions does not exist 
[ERROR] /home/ec2-user/projects/kinesisProducer1/my-app/src/main/java/in/myscratchpad/app/App.java:[9,39] package com.amazonaws.services.dynamodb does not exist 
[ERROR] /home/ec2-user/projects/kinesisProducer1/my-app/src/main/java/in/myscratchpad/app/App.java:[20,9] cannot find symbol 
[ERROR] symbol: class AmazonDynamoDBClientBuilder 
[ERROR] location: class in.myscratchpad.app.App 
[ERROR] /home/ec2-user/projects/kinesisProducer1/my-app/src/main/java/in/myscratchpad/app/App.java:[20,47] cannot find symbol 
[ERROR] symbol: variable AmazonDBClientBuilder 
[ERROR] location: class in.myscratchpad.app.App 
[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 

當我簡單的保持你好,沒有AWS包的世界代碼工作正常,當我嘗試構建服務客戶端時,我得到這些錯誤。

+1

在你的pom.xml也許' POM'應該是'罐子' –

+0

@ScaryWombat或者只是省略了''完全標籤,默認爲JAR。 –

+0

_ pom import _僅在_ _部分中有用,用於定義默認版本和在_ <依賴關係> _部分中聲明的依賴關係的作用域。 – Tome

回答

0

它說

...cannot find symbol 
[ERROR] symbol: variable AmazonDBClientBuilder 
[ERROR] location: class in.myscratchpad.app.App 

其中接縫交代清楚,它可以編譯in.myscratchpad.app.App,因爲在它的符號(即AmazonDBClientBuilder),它不能被發現!

我不知道這是什麼類是但鑑於

  • 你不必爲進口類AmazonDBClientBuilder
  • 你的結果分配給AmazonDynamoDBClientBuilder

不在你的代碼中有一個錯字,你應該用AmazonDynamoDBClientBuilder.standard()代替?