我能够在jar文件中为类创建一个对象,这是另一个模块。
我创建了一个带有主类的新java项目,将jar添加到lib文件夹中,并且我能够为该jar的类(com.canonical.client)创建对象,同时将主类作为java应用程序运行。
现在,我已经将这个java项目转换为maven。当我尝试清理和安装时,我无法成功构建。给出的错误是" package com.canonical.client does not exist"。
在Jespers的建议下,我能够构建这个项目。我得到以下异常,而调用创建客户端对象的方法。在那个罐子里,它寻找其他的罐子。
java.lang.ClassNotFoundException: ch.qos.logback.core.Context
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
at com.mmf.controllers.PickEquifaxController.handleRequestInternal(com.mmf.controllers.PickEquifaxController:33)
我的manifest文件在jar中的前两行如下所示,它实际上引用了118个jar,
Manifest-Version: 1.0
Class-Path: . canonicalclient_lib/activemq-camel-5.8.0.jar canonicalclient_lib/activemq-core-5.6.0.jar
canonicalclient_lib/activemq-pool-5.6.0.jar canonicalclient_lib/activemq-protobuf-1.1.jar
我需要做什么才能得到这个问题的答案。请建议。
您可以使用如下命令在本地Maven存储库中安装JAR:
mvn install:install-file -Dfile=<path-to-file> -DgroupId=<group-id>
-DartifactId=<artifact-id> -Dversion=<version> -Dpackaging=<packaging>
,您必须填写自己的组id,工件id,版本和包装-包装很可能是jar
-例如:
mvn install:install-file -Dfile=myjarfile.jar -DgroupId=com.canonical
-DartifactId=client -Dversion=1.0 -Dpackaging=jar
这样做之后,您可以像使用任何其他Maven依赖一样使用它,通过在pom.xml
中使用组id,工件id和版本指定依赖:
<dependency>
<groupId>com.canonical</groupId>
<artifactId>client</artifactId>
<version>1.0</version>
</dependency>
您可以通过这种方式在POM.xml中添加自定义jar
<dependency>
<groupId>com.canonicalclient</groupId>
<artifactId>xxx</artifactId>
<version></version>
<systemPath>${basedir}/lib/xxx.jar</systemPath>
</dependency>