[英]Add test classpath to Jetty run by Cargo
我想使用Cargo運行Jetty,但我想向Jetty classpath添加測試資源。
這是我的Maven配置:
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>1.4.5</version>
<executions>
<execution>
<id>start-jetty</id>
<phase>pre-integration-test</phase>
<goals><goal>start</goal></goals>
<configuration>
<configuration>
<properties>
<cargo.jvmargs>${argLine}</cargo.jvmargs>
</properties>
</configuration>
</configuration>
</execution>
<execution>
<id>stop-jetty</id>
<phase>post-integration-test</phase>
<goals><goal>stop</goal></goals>
</execution>
</executions>
<configuration>
<container>
<containerId>jetty8x</containerId>
<type>embedded</type>
<log>${basedir}\target\cargo.log</log>
<output>${basedir}\target\jetty.log</output>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
</dependencies>
</container>
<configuration>
<properties>
<cargo.servlet.port>8081</cargo.servlet.port>
<cargo.logging>high</cargo.logging>
<cargo.jvmargs>${argLine} -Denv=test</cargo.jvmargs>
</properties>
</configuration>
<deployables>
<deployable>
<pingURL>http://localhost:8081/myapp/</pingURL>
<pingTimeout>600000</pingTimeout>
<properties>
<context>myapp</context>
</properties>
</deployable>
</deployables>
</configuration>
</plugin>
不使用貨運,我在碼頭配置中使用useTestClasspath :
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<version>6.1.26</version>
<configuration>
<contextPath>myapp</contextPath>
<webAppSourceDirectory>WebContent</webAppSourceDirectory>
<stopPort>9699</stopPort>
<stopKey>foo</stopKey>
<scanIntervalSeconds>0</scanIntervalSeconds>
<connectors>
<connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
<port>8081</port>
</connector>
</connectors>
<useTestClasspath>true</useTestClasspath>
<systemProperties>
<systemProperty>
<name>jettyMode</name>
<value>true</value>
</systemProperty>
</systemProperties>
</configuration>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.18</version>
</dependency>
</dependencies>
</plugin>
有什么方法可以用一種useTestClasspath配置Cargo嗎? 謝謝。
如果我正確理解了您的問題,那么您的問題是,您的某些依賴項在<scope>test</scope>
,因此它們沒有打包到您的war(或ear)文件中,並且在您的集成中將不可用(或其他)測試(在容器內工作)。
為了實現該行為,可以像在mysql-connector-java中添加依賴項一樣向容器定義添加依賴項,配置中缺少的是<type>
:
<container>
...
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<type>jar</type>
</dependency>
</dependencies>
</container>
而且,該依賴項的artfactId和groupId 必須解析為您pom中已定義的依賴項(作為依賴項)。 參見此處Cargo Maven2參考
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.