2015-11-02 68 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