我有一个用maven创建的Selenium TestNG项目``
我的要求:现在我想将这个项目打包到可执行的jar中,或者是否有任何选项来生成一个可执行文件,这样我就可以使用批处理文件来计划运行。
为此,我运行了“mvn package”命令,并在目标文件夹中生成了jar文件。现在,当我尝试以java-jar myproj-0.0.1-SNAPSHOT的形式运行它时。我得到的消息是“在myproj-0.0.1-SNAPSHOT.jar中没有主清单属性”。这是预期的行为,因为在我的例子中没有主类<因此,我创建了一个主类,其中只有一行用于打印“文本”,并在pom中的条目下方添加了主类。xml
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<archive>
<manifest>
<mainClass>mainPackage.MainOne</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
然后我运行mvn包,它生成了新的jar。然后转到我的项目的目标文件夹,以java-jar myProj的身份运行命令。jar主包。MainOne运行并只打印“文本”。我的TestNG测试没有运行。它只运行了主类:(……我应该做什么?
我用JUnit做了类似的事情。我从main方法以编程方式运行我的测试。我不知道TestNG,但您可以在这里查看如何做到这一点-以编程方式运行TestNG
只是想让您知道,我已经找到了一个解决方案,如本文所述,如何以编程方式调用Maven任务
正如我提到的,我确实使用了主类。所以我做了下面的
-在pom.xml中添加了maven调用者依赖项
<dependency>
<groupId>org.apache.maven.shared</groupId>
<artifactId>maven-invoker</artifactId>
<version>2.1.1</version>
</dependency>
>
使用此链接更新了我的主类类如下-http://maven.apache.org/shared/maven-invoker/usage.html
public class MainOne {
public static void main(String[] args) {
InvocationRequest request = new DefaultInvocationRequest();
request.setPomFile( new File( "pom.xml" ));
request.setGoals( Collections.singletonList( "install" ));
Invoker invoker = new DefaultInvoker();
invoker.setMavenHome(new File(System.getenv("MAVEN_HOME")));
try {
invoker.execute( request );
} catch (MavenInvocationException e) {
e.printStackTrace();
}
}
}
然后从命令提示符运行命令mvn clean package shade:shade
Jenkins不熟悉,所以我有一个java web项目(maven)和一个单元测试文件。测试文件结构:src/test/Java/preprocessortest . Java 该测试在intellij中成功执行。但是Jenkins并不认为这个测试文件是成功的。 它显示“没有要运行的测试” Jenkins控制台日志 pom.xml (编辑)当我使用cmd作为“mvn test”在pc中进行mave
我越来越沮丧了。我在互联网上找不到一个单一的,有凝聚力的答案来解决我的问题。虽然有很多文档,但没有什么能把所有这些都结合在一起(我可以找到)。 我只需要有人告诉我: null 尽可能简单。
问题内容: 这个问题已经在这里有了答案 : Maven Run Project (6个答案) 5年前关闭。 我创建了一个使用Maven构建的简单控制台Java应用程序。有没有一种方法可以使用maven命令从命令行运行主类(不需要任何参数): 问题答案: 尝试使用maven-exec-plugin。从那里: 这将在JVM中运行您的类。您可以用来传递参数。 如果您使用的是Windows,请为和加上引号
我试图在IntelliJ中运行cucumber特征文件。 Cucumber Options指向正确的文件夹,但在尝试执行JUnit运行程序类时,我会收到“无可用任务”通知。 我做错了什么? 这是我的:
问题内容: 我不想将其打包在单个可执行jar中进行分发。我需要一个可执行文件,例如main.jar,所有依赖项都在libs / *。jar中 我如何才能使maven可执行jar不预先包含在其依赖库中? 在如何使用Maven创建具有依赖项的可执行JAR中?10年12月1日10:46回答了一条注释,安德烈·阿隆森(AndréAronsen),但那根本不起作用(未设置失败的sadescriptorRef
问题内容: 我有一个多模块Maven项目,其中一个模块用于分发。 该发行版包含一个我想轻松执行的可执行jar。但是,要执行它,我必须键入类似以下内容: 简单键入以下内容将是更好的选择: 不幸的是,我找不到找到执行.jar的java目标的方法。exec目标实际上可以做到,但是有一个陷阱:jar包含一个嵌入式码头服务器,并且由于exec的工作方式(不使用与maven相同的JVM),除非我杀死进程,否则