0

我正在使用 jetty-maven 插件来部署一个用于集成测试的网络应用程序。我有一个由两个 POM 组成的项目。一个在根目录中,一个在项目根目录中的目录中(称为 webapp 目录)。当我从 webapp 目录中的 maven(使用 jetty-maven 插件)运行集成测试时,它工作得非常好。但是,当我从根目录运行它时,它会进入 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>
4

1 回答 1

1

您很可能只需要在您的网络应用程序资源路径中指定 ${basedir}。

于 2011-06-21T15:18:54.357 回答