我正在使用jetty-maven插件来部署用于集成测试的Web应用程序。我有一个由两个POM组成的项目。一个在根目录中,另一个在项目根目录中(称为webapp目录)。当我从maven(使用jetty-maven插件)运行集成测试时,在webapp目录中,它完全正常。但是,当我从根目录运行它时,它会进入webapp目录并运行测试,但由于某种原因,它会导致路径错误。 (因此,无法找到所有资源)。
它将根目录路径连接到webapp资源路径。它也不了解路径中的点运算符。
例如:如果要查找“./resources/resource.xml”
如果从webapp目录运行测试,它将正常工作,但是如果从根目录运行它将创建路径:“c:/ project /./ resources / resource.xml”。这是jetty-maven插件,但我不知道为什么。
有没有办法解决这个问题?
这是我的webapp目录POM的相关部分
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<configuration>
<webApp>${basedir}/target/webappSNAPSHOT.war</webApp>
<extraClasspath>${project.build.testOutputDirectory}</extraClasspath>
<testClassesDirectory>${basedir}/target/test-classes</testClassesDirectory>
<useTestClasspath>true</useTestClasspath>
<stopPort>9929</stopPort>
<stopKey>stopKey</stopKey>
</configuration>
答案 0 :(得分:1)
您很可能只需在网络应用资源路径中指定$ {basedir}。