gpt4 book ai didi

java - 如何在多模块 Selenium 自动化项目中创建 'fatjar'?

转载 作者:行者123 更新时间:2023-12-01 18:32:24 49 4
gpt4 key购买 nike

我已经这样做好几天了,并尝试了很多东西,但我似乎无法弄清楚这一点。我正在将 intellij 中的多模块项目从 maven 转换为 gradle,其结构如下:

com.automation

  • build.gradle

  • api

    • src/main/Authorisation.java
    • src/test/LoginAuth.java
    • build.gradle
  • pageobjects

    • src/main/LoginPage_Method.java
    • build.gradle
  • testclasses

    • src/test/LoginTests.java
    • build.gradle
task fatJar(type: Jar) {
archiveBaseName = project.jar_name
zip64 = true

manifest {
attributes 'Main-Class': 'My Main Class'
}

from sourceSets.test.output
from { configurations.testRuntime.collect { it.isDirectory() ? it : zipTree(it) } }
with jar
}

在我的 com.automation > build.gradle 文件中,我尝试创建一个 fatjar,因此当我运行 java -jar {nameofJar}.jar 时,jar 会运行正如它应该。我认为的问题是,当我创建 jar 文件时,依赖项没有被创建(我知道这一点,因为当提取 jar 时,我没有看到类路径文件),所以当我尝试运行 jar 文件时,我得到一个异常:

Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.NoClassDefFoundError: org/junit/runner/notification/RunListener
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
at java.lang.Class.privateGetMethodRecursive(Class.java:3048)
at java.lang.Class.getMethod0(Class.java:3018)
at java.lang.Class.getMethod(Class.java:1784)
at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:544)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:526)
Caused by: java.lang.ClassNotFoundException: org.junit.runner.notification.RunListener
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 7 more

非常感谢任何解决这个问题的帮助。

最佳答案

我能够找出问题所在。对于遇到同样问题的人,我替换了:

from { configurations.testRuntime.collect { it.isDirectory() ? it : zipTree(it) } }

from { configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) } }

关于java - 如何在多模块 Selenium 自动化项目中创建 'fatjar'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60136162/

49 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com