好的我是新来的并且挣扎所以请耐心等待!
我正在尝试将其添加到现有的网络应用
https://github.com/RusticiSoftware/TinCanJava
页面上的说明建议使用Maven构建Jar,我已经完成了。然后,我尝试了几种方法将已编译的Jar放入我的Web应用程序项目中,例如
添加为依赖
<dependency>
<groupId>tincan</groupId>
<artifactId>tincan</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/resources/tincan-1.1.1-SNAPSHOT-jar-with-dependencies.jar</systemPath>
</dependency>
或安装
mvn install:install-file -Dfile = C:\ workspace \ tincanJava \ TinCanJava \ target \ tincan-1.1.1-SNAPSHOT-jar-with-dependencies.jar -DgroupId = com.rusticsoftware.tincan -DartifactId = tincan -Dversion = 1.0 -Dpackaging = jar
我可以看到Intellij中的文件和类,所有元素都在显示,但是当我运行应用程序时,我收到以下错误:
Caused by: java.lang.ClassNotFoundException: com.rusticisoftware.tincan.StatementsQueryInterface
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:509)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
我这样做错了吗?我应该将源添加到我的目录和依赖项到我的POM并以这种方式构建吗?
答案 0 :(得分:1)
范围system
与范围provided
相同,这意味着此jar不包含在您的依赖项中。运行应用程序时必须将其添加到类路径中
<强>系统强>
此范围与提供的类似,但您必须提供 显式包含它的JAR。工件总是可用的 没有在存储库中查找。
<强>提供强>
这很像编译,但表示你期望JDK或者 容器在运行时提供依赖性。例如,何时 您可以为Java Enterprise Edition构建Web应用程序 设置对Servlet API和相关Java EE API的依赖 提供范围是因为Web容器提供了这些类。这个 scope仅在编译和测试类路径上可用,并且是 不可传递