Dear all, I found the problem. Version must be set in surefire. Solved it with
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven-surefire-plugin.version}</version>
<configuration>
<forkCount>1</forkCount>
<reuseForks>false</reuseForks>
<systemPropertyVariables>
<property>
<!-- Set property to java.system.property, so it could be
loaded to build karaf-test-instance -->
<name>karaf.version</name>
<value>${karaf.version}</value>
</property>
<property>
<!-- Set property to java.system.property, so it could be
loaded to build karaf-test-instance -->
<name>project.version</name>
<value>${project.version}</value>
</property>
<org.slf4j.simpleLogger.defaultLogLevel>DEBUG</org.slf4j.simpleLogger.defaultLogLevel>
<org.slf4j.simpleLogger.showDateTime>true</org.slf4j.simpleLogger.showDateTime>
<org.slf4j.simpleLogger.cacheOutputStream>System.out</org.slf4j.simpleLogger.cacheOutputStream>
</systemPropertyVariables>
<argLine>
--add-opens java.base/java.security=ALL-UNNAMED
--add-opens java.base/java.net=ALL-UNNAMED
--add-opens java.base/java.lang=ALL-UNNAMED
--add-opens java.base/java.util=ALL-UNNAMED
--add-opens java.naming/javax.naming.spi=ALL-UNNAMED
--add-opens java.rmi/sun.rmi.transport.tcp=ALL-UNNAMED
</argLine>
</configuration>
</plugin>
> Am 05.01.2025 um 17:22 schrieb Matthias Wegner <[email protected]>:
>
> Hi all,
>
> I tried on base of example
> https://github.com/apache/karaf/blob/main/examples/karaf-itest-example/ in a
> own project an integration test, set the dependencies in pom an with version
> 4.4.6 for karaf.
>
> But man clean test throws:
>
> org.ops4j.pax.exam.TestContainerException:
> java.lang.IllegalArgumentException: Could not resolve version. Do you have a
> dependency for org.apache.karaf/apache-karaf in your maven project?
> at
> org.ops4j.pax.exam.spi.reactors.ReactorManager.prepareReactor(ReactorManager.java:195)
> at
> org.ops4j.pax.exam.junit.impl.ProbeRunner.<init>(ProbeRunner.java:78)
> at org.ops4j.pax.exam.junit.PaxExam.createDelegate(PaxExam.java:82)
> at org.ops4j.pax.exam.junit.PaxExam.<init>(PaxExam.java:73)
> at
> java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62)
> at
> java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:501)
> at
> java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:485)
> at
> org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:104)
> at
> org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:86)
> at
> org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:70)
> at
> org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:37)
> at
> org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:70)
> at
> org.junit.internal.requests.ClassRequest.createRunner(ClassRequest.java:28)
> at
> org.junit.internal.requests.MemoizingRequest.getRunner(MemoizingRequest.java:19)
> at
> org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:314)
> at
> org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:240)
> at
> org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:214)
> at
> org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:155)
> at
> org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385)
> at
> org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162)
> at
> org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507)
> at
> org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495)
> Caused by: java.lang.IllegalArgumentException: Could not resolve version. Do
> you have a dependency for org.apache.karaf/apache-karaf in your maven project?
> at
> org.ops4j.pax.exam.MavenUtils.getArtifactVersion(MavenUtils.java:75)
> at org.ops4j.pax.exam.MavenUtils$1.getVersion(MavenUtils.java:109)
> at
> org.ops4j.pax.exam.options.MavenArtifactUrlReference.version(MavenArtifactUrlReference.java:86)
> at
> org.ops4j.pax.exam.options.MavenArtifactUrlReference.versionAsInProject(MavenArtifactUrlReference.java:90)
> at
> org.apache.karaf.itests.KarafTestSupport.getKarafDistribution(KarafTestSupport.java:198)
> at
> org.apache.karaf.itests.KarafTestSupport.config(KarafTestSupport.java:241)
> at
> java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
> at java.base/java.lang.reflect.Method.invoke(Method.java:580)
> at
> org.ops4j.pax.exam.spi.reactors.ReactorManager.addConfigurationsToReactor(ReactorManager.java:248)
> at
> org.ops4j.pax.exam.spi.reactors.ReactorManager.prepareReactor(ReactorManager.java:184)
> ... 21 more
>
> Any hint?
>
> In the pom I set
> <!-- Karaf Testing: Support Tooling -->
> <dependency>
> <groupId>org.apache.karaf.itests</groupId>
> <artifactId>common</artifactId>
> <version>${karaf.version}</version>
> <scope>test</scope>
> </dependency>
> <!-- Karaf Testing: Pax Exam Core -->
> <dependency>
> <groupId>org.ops4j.pax.exam</groupId>
> <artifactId>pax-exam-junit4</artifactId>
> <version>${pax-exam.version}</version>
> <scope>test</scope>
> </dependency>
> <!-- Karaf Testing: Karaf Test Container -->
> <dependency>
> <groupId>org.ops4j.pax.exam</groupId>
> <artifactId>pax-exam-container-karaf</artifactId>
> <version>${pax-exam.version}</version>
> <scope>test</scope>
> </dependency>
> <!-- Required to use shell commands in the tests -->
> <dependency>
> <groupId>org.apache.karaf.shell</groupId>
> <artifactId>org.apache.karaf.shell.core</artifactId>
> <version>${karaf.version}</version>
> <scope>test</scope>
> </dependency>
> <!-- Karaf Testing: Karaf Distribution -->
> <dependency>
> <groupId>org.apache.karaf</groupId>
> <artifactId>apache-karaf</artifactId>
> <version>4.4.6</version>
> <type>tar.gz</type>
> <exclusions>
> <exclusion>
> <groupId>org.apache.karaf</groupId>
> <artifactId>org.apache.karaf.client</artifactId>
> </exclusion>
> </exclusions>
> <scope>test</scope>
> </dependency>
>