如何运行使用maven创建的可执行jar文件?
我们正在开发使用硒和Junit的自动化测试。我们的要求是使用Maven制作一个可执行的jar文件。项目结构看起来像这样如何运行使用maven创建的可执行jar文件?
Project
|src\main\java
|src\main\res
|src\test\java
|testmain
|MainTest.java
|src\test\res
|target
|pom.xml
我们使用maven组件插件创建jar文件
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>testMain.MainTest</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>`
我们可以能够创建jar文件(SampleMaven-0.0.1-SNAPSHOT-JAR-与 - 依赖关系.jar)使用这个命令。
清洁套装组件:单
但是,当我们尝试使用
Java来运行它的罐子SampleMaven-0.0.1-SNAPSHOT-JAR-与-dependencies.jar
我们得到这个错误
无法找到或加载主类testMain.MainTest
请帮我解决这个错误
编辑:
正如我上面提到的,我不能有MainTest.java在SRC /主文件夹,因为我们的项目只是关于主要使用硒的自动化测试。硒/ junit是不在src/main下工作的测试框架。请让我知道是否有任何其他方法来解决这一冲突。
将应该成为打包罐的一部分的所有文件放入/src/main
而不是/src/test
。
/src/test
应该包含你的项目的测试文件(单元测试等),不是最终的工件的一部分。这就是为什么java无法在jar中找到类。
我们正在使用黄瓜/ junit来运行我们的测试。当我们在'/ src/main'下时,cucumber/junit不起作用。 – user1553680
请不要发布图片,将结构发布为文字。类testMain.MainTest是否存在?你能解开你的JAR,看看它是否在那里? – Tunaki
你在'MainTest'类中有'main'方法吗? –
“/ src/test''文件夹中的所有文件都不会打包到jar中。将你的MainTest类放在''/ src/main''中。 ''/ src/test''应该包含你项目的测试文件(单元测试等),而不是最终产品的一部分。 – f1sh