У меня возникли проблемы с созданием теста JUnit с использованием зависимости pom.xml.Arquillian ShrinkWrap
Испытание бегутся с Arquillian
@RunWith(Arquillian.class)
В этом методе
@Deployment public static JavaArchive createDeployment() {
Во-первых, я создаю JavaArchive с пакетом проекта я тестирую
JavaArchive merge = ShrinkWrap.create(JavaArchive.class). addPackages(true, "migrazioneGeaPersistenzaTampone", "migrazioneGeaPersistenza", "it.**.mistral.importGEA4.task", "migrazioneGeaPersistenzaAccess" ). addClasses(java.sql.Connection.class) .addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml");
Затем, когда я запускаю тест, есть некоторые недостающие зависимости
Unable to resolve any beans for Types: [class it.**.**.be.service.EnvironmentRootService]
присутствует в этой зависимости
<dependency> <groupId>it.**.mistral</groupId> <artifactId>mistral-be</artifactId> <version>0.1.0</version> <scope>compile</scope> </dependency>
Я пробовал много разных вещи, чтобы добавить эту зависимость, лучше один, кажется, используя Shrinkwrap резольверов (https://github.com/shrinkwrap/resolver/blob/master/README.asciidoc, particullarry этого пункта https://github.com/shrinkwrap/resolver/blob/master/README.asciidoc#resolution-of-artifacts-defined-in-pom-files)
)
JavaArchive[] archives = Maven.resolver().loadPomFromFile(path_to_pom_file). importDependencies(ScopeType.TEST,ScopeType.COMPILE). resolve().withTransitivity().as(JavaArchive.class);
или
Maven.resolver().loadPomFromFile("/path/to/pom.xml").importRuntimeDependencies() .resolve().withTransitivity().asFile();
Зависимость игнорируется в любом случае (я что-то не хватает?)
б)
JavaArchive[] mistral_be = Maven.configureResolver().workOffline(). resolve("it.**.mistral:mistral-be:0.1.0").withTransitivity().as(JavaArchive.class);
for (int i = 0; i < mistral_be.length ; i++) {
merge = merge.merge(mistral_be[i]);
}
С помощью простого
System.out.println(merge.toString(true));
я могу видеть, что все файлы из зависимостей присутствуют! В любом случае я использую локальный репозиторий workoffline() Возможно, мне не хватает некоторых зависимостей?
Но выход метод с
return merge;
бросает «java.lang.NoClassDefFoundError: COM/Google/Protobuf/GeneratedMessage .... вызвано следующими причинами: java.lang.ClassNotFoundException: com.google. protobuf.GeneratedMessage "ошибка.
Затем снова я пытался добавить недостающие dependecies
// Tryn'g to add protobuf dependencies JavaArchive[] prto_buf = Maven.configureResolver().withMavenCentralRepo(true).resolve("com.google.protobuf:protobuf-java:2.3.0").withTransitivity().as(JavaArchive.class);
for (int i = 0; i < prto_buf.length ; i++) { projectPackages = projectPackages.merge(prto_buf[i]); }
Броски sameException ... Опять же, с простой
System.out.println(merge.toString(true));
Я могу видеть, что com.Google.protobuf.GeneratedMessage является настоящее время
Выписка из зависимых мест:
<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.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.shrinkwrap.resolver</groupId>
<artifactId>shrinkwrap-resolver-depchain</artifactId>
<version>2.1.0</version>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.jboss.arquillian</groupId>
<artifactId>arquillian-bom</artifactId>
<version>1.1.5.Final</version>
<scope>import</scope>
<type>pom</type>
</dependency>
</dependencies>
</dependencyManagement>
Может ли кто-нибудь помочь мне решить эту проблему?
Я пытаюсь установить в управляемый контейнер (Jboss 7.1.1), но теперь у меня есть новая проблема. В любом случае я принимаю ответ, потому что prblem был встроенным контейнером. Теперь я открою еще один поток для новой проблемы :) – Antimo
Новый вопрос :) http://stackoverflow.com/questions/26453160/arquillian-shrinkwrap-maven-dependencies-in-pom – Antimo