2013-09-01 3 views
0

Я изучаю платформу Arquillian. Чтобы делать примеры, я использую Eclipse. Я первый успешно следовал
http://arquillian.org/guides/getting_started/
и после этого, я попытался сделать примеры кода в
http://arquillian.org/guides/testing_java_persistence/
, но у меня возникли проблемы с зависимостями библиотеки:Отсутствующие зависимости в руководстве «Проверка Java persistence»

import org.jboss.arquillian.container.test.api.Deployment; 
import org.jboss.arquillian.junit.Arquillian; 

не распознаются Eclipse.

Это 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>org.arquillian.example</groupId> 
    <artifactId>arquillian-tutorial</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <packaging>jar</packaging> 

    <name>arquillian-tutorial</name> 
    <url>http://maven.apache.org</url> 

    <properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 

    <build> 
    <plugins> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-compiler-plugin</artifactId> 
     <version>2.3.2</version> 
     <configuration> 
      <source>1.6</source> 
      <target>1.6</target> 
     </configuration> 
     </plugin> 
    </plugins> 
    </build> 
    <dependencies> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>4.8.1</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.mockito</groupId> 
     <artifactId>mockito-all</artifactId> 
     <version>1.8.5</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.hamcrest</groupId> 
     <artifactId>hamcrest-integration</artifactId> 
     <version>1.2.1</version> 
    </dependency> 
    <dependency> 
     <groupId>net.avh4.util</groupId> 
     <artifactId>imagecomparison</artifactId> 
     <version>0.0.2</version> 
     <scope>test</scope> 
    </dependency> 
     <dependency> 
     <groupId>org.jboss.spec</groupId> 
     <artifactId>jboss-javaee-6.0</artifactId> 
     <version>1.0.0.Final</version> 
     <type>pom</type> 
     <scope>provided</scope> 
    </dependency> 
     <dependency> 
     <groupId>org.jboss.arquillian</groupId> 
     <artifactId>arquillian-bom</artifactId> 
     <version>1.1.1.Final</version> 
     <scope>import</scope> 
     <type>pom</type> 
    </dependency> 
    <dependency> 
     <groupId>org.jboss.arquillian.junit</groupId> 
     <artifactId>arquillian-junit-container</artifactId> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.jboss.arquillian.container</groupId> 
     <artifactId>arquillian-weld-ee-embedded-1.1</artifactId> 
     <version>1.0.0.CR3</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.jboss.weld</groupId> 
     <artifactId>weld-core</artifactId> 
     <version>1.1.5.Final</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-simple</artifactId> 
     <version>1.6.4</version> 
     <scope>test</scope> 
    </dependency> 
    </dependencies> 
</project> 
+0

Полагаю, вы выполнили «mvn eclipse: eclipse»? Также класс 'org.jboss.arquillian.container.test.api.Deployment' содержится в следующем артефакте: org.jboss.arquillian.container: arquillian-container-test-api. Это, похоже, явно не указано в вашем pom, вы можете попробовать добавить его, чтобы узнать, помогает ли это. – DB5

+0

Я импортировал проект с maven в eclipse, и я решил проблему с ответом n.1 –

ответ

3

Arquillian BOM должен присутствовать как dependency в dependencyManagement разделе вашего POM, а не как обычный dependendcy, например, так:

<?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> 
    ... 
    <dependencyManagement> 
    <dependencies> 
     <dependency> 
     <groupId>org.jboss.arquillian</groupId> 
     <artifactId>arquillian-bom</artifactId> 
     <version>1.1.1.Final</version> 
     <scope>import</scope> 
     <type>pom</type> 
     </dependency> 
    </dependencies> 
    </dependencyManagement> 
    ... 
    <dependencies> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>4.8.1</version> 
     <scope>test</scope> 
    </dependency> 
    ... 
    <dependency> 
     <groupId>org.jboss.arquillian.junit</groupId> 
     <artifactId>arquillian-junit-container</artifactId> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.jboss.arquillian.container</groupId> 
     <artifactId>arquillian-weld-ee-embedded-1.1</artifactId> 
     <version>1.0.0.CR3</version> 
     <scope>test</scope> 
    </dependency> 
    ... 
    </dependencies> 
</project> 

Обратите внимание на использование Аркиллианской спецификации и зависимости arquillian-junit-container (версия которой указана в спецификации). Если вы не используете Аркиллианскую спецификацию, вам потребуется указать версию зависимости arquillian-junit-container. Другими требуемыми параметрами являются junit:junit и адаптер контейнера Arquillian (в вашем случае адаптер для встраиваемого контейнера Weld).

 Смежные вопросы

  • Нет связанных вопросов^_^