如何在 Maven 中添加我的自定义 jar
how to add my custom jar in maven
我能够在 jar 文件中为 class 创建一个对象,这是另一个模块。
我创建了一个带有主 class 的新 java 项目,将 jar 添加到 lib 文件夹,我能够为该 jar 的 class(com.canonical.client),而 运行 主要 class 作为 java 应用程序。
现在,我已经将这个 java 项目转换为 maven。当我尝试清理和安装时,我无法成功构建。给出的错误是“包 com.canonical.client 不存在”。
根据 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)
我的清单文件在那个 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
我需要做什么来解决这个问题。请指教。
您可以 install your JAR 在本地 Maven 存储库中使用如下命令:
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>
我能够在 jar 文件中为 class 创建一个对象,这是另一个模块。
我创建了一个带有主 class 的新 java 项目,将 jar 添加到 lib 文件夹,我能够为该 jar 的 class(com.canonical.client),而 运行 主要 class 作为 java 应用程序。
现在,我已经将这个 java 项目转换为 maven。当我尝试清理和安装时,我无法成功构建。给出的错误是“包 com.canonical.client 不存在”。
根据 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)
我的清单文件在那个 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
我需要做什么来解决这个问题。请指教。
您可以 install your JAR 在本地 Maven 存储库中使用如下命令:
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
:
<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>