2015-11-02 39 views
0

我正在使用IntelliJ + Maven模塊進行測試自動化。目前我想實現一個類來檢查電子郵件與硒webdriver。當我在我的項目導入這些:使用Maven模塊和Intellij在測試自動化項目中導入javax API

import javax.mail.Authenticator; 
import javax.mail.Folder; 
import javax.mail.MessagingException; 
import javax.mail.Multipart; 
import javax.mail.Part; 
import javax.mail.PasswordAuthentication; 
import javax.mail.Session; 
import javax.mail.Store; 

那麼編譯器說:無法解析符號...

我想我的思念與Maven項目的一些設置。我是否必須在pom.xml中添加任何特殊標記,以便導入java API?由於

我的POM文件如下:

<?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>jsproject</groupId> 
 
    <artifactId>jsproject</artifactId> 
 
    <version>1.0-SNAPSHOT</version> 
 

 
    <properties> 
 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
 
     <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 
 
     <selenium.version>2.48.2</selenium.version> 
 
     <overwrite.binaries>false</overwrite.binaries> 
 
     <browser>firefox</browser> 
 
     <threads>1</threads> 
 
     <remote>false</remote> 
 
     <seleniumGridURL/> 
 
     <platform/> 
 
     <browserVersion/> 
 
    </properties> 
 

 
    <dependencies> 
 
     <dependency> 
 
      <groupId>org.hamcrest</groupId> 
 
      <artifactId>hamcrest-all</artifactId> 
 
      <version>1.3</version> 
 
     </dependency> 
 
     <dependency> 
 
      <groupId>org.seleniumhq.selenium</groupId> 
 
      <artifactId>selenium-java</artifactId> 
 
      <version>${selenium.version}</version> 
 
      <scope>test</scope> 
 
     </dependency> 
 
     <dependency> 
 
      <groupId>junit</groupId> 
 
      <artifactId>junit</artifactId> 
 
      <version>4.12</version> 
 
      <scope>test</scope> 
 
     </dependency> 
 
    </dependencies> 
 

 
    <build> 
 
     <directory>target</directory> 
 
     <outputDirectory>target/classes</outputDirectory> 
 
     <testOutputDirectory>target/test-classes</testOutputDirectory> 
 
     <sourceDirectory>src/main/java</sourceDirectory> 
 
     <!--<testSourceDirectory>src/test/java</testSourceDirectory>--> 
 
     <resources> 
 
      <resource> 
 
       <directory>src/main/resources</directory> 
 
      </resource> 
 
     </resources> 
 

 
     <pluginManagement> 
 
      <plugins> 
 
       <plugin> 
 
        <groupId>org.apache.maven.plugins</groupId> 
 
        <artifactId>maven-compiler-plugin</artifactId> 
 
        <configuration> 
 
         <source>1.8</source> 
 
         <target>1.8</target> 
 
        </configuration> 
 
       </plugin> 
 
       <plugin> 
 
        <groupId>org.apache.maven.plugins</groupId> 
 
        <artifactId>maven-jar-plugin</artifactId> 
 
        <version>2.6</version> 
 
        <configuration> 
 
         <archive> 
 
          <index>true</index> 
 
          <manifest> 
 
           <addClasspath>true</addClasspath> 
 
          </manifest> 
 
          <manifestEntries> 
 
           <mode>development</mode> 
 
           <url>${project.url}</url> 
 
           <key>value</key> 
 
          </manifestEntries> 
 
         </archive> 
 
        </configuration> 
 
       </plugin>     
 
       <plugin> 
 
        <groupId>org.apache.maven.plugins</groupId> 
 
        <artifactId>maven-dependency-plugin</artifactId> 
 
        <executions> 
 
         <execution> 
 
          <id>copy-dependencies</id> 
 
          <phase>prepare-package</phase> 
 
          <goals> 
 
           <goal>copy-dependencies</goal> 
 
          </goals> 
 
          <configuration> 
 
           <outputDirectory>${project.build.directory}/lib</outputDirectory> 
 
           <overWriteReleases>false</overWriteReleases> 
 
           <overWriteSnapshots>false</overWriteSnapshots> 
 
           <overWriteIfNewer>true</overWriteIfNewer> 
 
          </configuration> 
 
         </execution> 
 
        </executions> 
 
       </plugin>     
 
      </plugins> 
 
     </pluginManagement> 
 
    </build> 
 

 
</project>

+0

你的POM中有什麼? – darrengorman

+0

檢查buildpath/maven存儲庫中是否存在javamail jar? – Shriram

+0

@darrengorman:我更新了我的POM文件。謝謝 – Ragnarsson

回答

1

您應該添加了JavaMail依賴於你的pom.xml

<dependency> 
    <groupId>javax.mail</groupId> 
    <artifactId>javax.mail-api</artifactId> 
    <version>1.5.2</version> 
</dependency> 

並與您所選擇的版本而不是的1.5.2

更新:

此依賴包含javamail api和 com.sun.mail.util.MailSSLSocketFactory,這是另一個建立在javamail上的庫,我猜。

<dependency> 
    <groupId>javax.mail</groupId> 
    <artifactId>mail</artifactId> 
    <version>1.5.0-b01</version> 
</dependency> 

所以只是用上述一個替換當前,它應該工作。

+0

太棒了!謝謝你,這就是我在POM中缺少的東西。另一個包:import com.sun.mail.util.MailSSLSocketFactory,你知道它的依賴嗎?非常感謝 – Ragnarsson

+0

這就是另一個建立在javamail之上的jar,看到更新 – Zpetkov

+0

感謝一個負載,問題解決了。 – Ragnarsson

相關問題