- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经构建了一个 Java Web 应用程序,它从一个表单接收一个 url,并从命令行使用本地 Maven 安装对这些 URL 执行 TestNG 测试。我的测试类位于 src/main/java 中,这不是常规的,但由于我的测试是在构建之后运行的,所以我将它们移到了那里。
当我在 Eclipse 的 Tomcat 中使用我的 servlet 中的 Maven 调用程序时,我的测试运行没有问题,并在我的 Web 应用程序中提供了输出结果。我遇到的问题是,当我将应用程序导出为 .war 文件并将其放入 Windows 机器上本地 Tomcat 服务器的 webapps 文件夹中时,找不到本地 Maven 安装。
HTTP Status 500 - Maven application directory was not specified, and ${maven.home} is not provided in the system properties. Please specify at least on of these.
...
java.lang.IllegalStateException: Maven application directory was not specified, and ${maven.home} is not provided in the system properties. Please specify at least on of these.
org.apache.maven.shared.invoker.MavenCommandLineBuilder.checkRequiredState(MavenCommandLineBuilder.java:127)
org.apache.maven.shared.invoker.MavenCommandLineBuilder.build(MavenCommandLineBuilder.java:62)
org.apache.maven.shared.invoker.DefaultInvoker.execute(DefaultInvoker.java:100)
com.xxxxx.qa.servlets.RunTestServlet.doPost(RunTestServlet.java:104)
javax.servlet.http.HttpServlet.service(HttpServlet.java:650)
javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
这是我正在使用的 Maven Invoker 代码:
InvocationRequest invocationRequest = new DefaultInvocationRequest();
invocationRequest.setPomFile( new File( "pom.xml" ) );
invocationRequest.setGoals( Collections.singletonList( "test surefire-report:report " + formatTest));
Invoker invoker = new DefaultInvoker();
invoker.setMavenHome(new File(System.getenv("MAVEN_HOME")));
InvocationResult result = invoker.execute( invocationRequest);
我从命令行运行 Maven 命令没有问题,并且已将我的 Maven 目录正确添加到我的 MAVEN_HOME 环境变量中。
我尝试了此页面上提供的一些答案,但没有成功 - Maven Invoker: IllegalStateException
我还尝试在 Tomcat-Home/bin 中运行 Tomcat setevn.bat 批处理文件:
set "maven.home=C:\XXXXX\XXXXX\apache-maven-3.5.0-bin\apache-maven-3.5.0"
...
set "MAVEN_HOME=C:\XXXXX\XXXXX\apache-maven-3.5.0-bin\apache-maven-3.5.0"
有什么想法吗?
最佳答案
请参阅此答案以了解如何设置 Environment variables for java installation (或其他任何东西)。
您不需要 Maven 来运行 TestNG,请参阅 run TestNg programmatically .
关于java - Maven Invoker 在 Tomcat 服务器上找不到 MAVEN_HOME 环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46084070/
此处是 Java 和 Maven 菜鸟: 使用 OSX 10.8 并用 HomeBrew 安装了 Maven 1- 如果我说 which mvn 我会得到这个:/usr/local/bin/mvn 2
我通过将/bin 添加到 PATH 并创建一个没有/bin 的 JAVA_HOME 来安装 OpenJDK 12。 证明这是可行的: C:\Users\rakoo>java -version
我有两个版本的 maven home 环境变量 - M2_HOME 和 MAVEN_HOME。 需要设置哪一项? 最佳答案 MAVEN_HOME 适用于 Maven 1,M2_HOME 适用于 Mav
我在 Eclipse 的项目中有这行代码,它给了我错误。 Invoker invoker = new DefaultInvoker(); invoker.setMavenHome(new File(S
这个问题在这里已经有了答案: What is the difference between M2_HOME and MAVEN_HOME (2 个回答) 关闭去年。 什么是正确的 Maven 环境变量
我创建了一个 .bat 文件来设置 maven 主目录和 java 主目录: @echo off @setlocal SETX /M JAVA_HOME $."/Java/jdk1.8.0_181"
运行 maven clean 时出现以下错误: Error: Could not find or load main class $MAVEN_HOME 在执行mvn -version时我得到: Ap
我已经构建了一个 Java Web 应用程序,它从一个表单接收一个 url,并从命令行使用本地 Maven 安装对这些 URL 执行 TestNG 测试。我的测试类位于 src/main/java 中
我是一名优秀的程序员,十分优秀!