java - 在 Nexus 上上传 jar 后 Maven 项目中出现 ClassNotFound 异常

标签 java maven-2 jakarta-ee md5 ear

我在一个 Maven 项目上工作,使用 Nexus 作为存储库管理器。简而言之,有 3 个部分:“业务”(打包在 .jar 中)、“Web”(打包在 .war 中)和“ear”(将整个东西打包在 .ear 中)

我工作得很好,但最近我一直在尝试向存储库添加一个“自定义”jar(用于 md5 密码转换),但效果不佳,我执行了以下操作:

  • 从网站 ( www.twmacinta.com ) 获取 java 文件以使用 md5 转换字符串。
  • 在我的项目中将其用作 java 文件,并且运行良好,然后我决定用它制作一个 jar。
  • 使用 javac 编译源代码。
  • 使用“jar”命令创建存档(“com/twmacinta/util/MD5-2.7.1.jar”)。
  • 连接到 Nexus 并上传 jar。
  • 转到我在 Businness 部分的 pom.xml 文件,通过选项卡“Dependency”和“Add...”添加依赖项(它找到了 jar,没问题),然后将其添加到我的 pom.xml 文件中。 xml文件:

    <dependency>
       <groupId>com.twmacinta.util</groupId>
       <artifactId>MD5</artifactId>
       <version>2.7.1</version>
    </dependency>
    
  • 在我的业务类中添加导入(它自动找到导入,没问题),如下所示:

    import com.twmacinta.util.MD5;

此时没有错误,所以我进行清理/安装/重新部署,一切正常。

但是当我尝试登录我的应用程序时,出现以下异常:

java.lang.ClassNotFoundException: com.twmacinta.util.MD5
     at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
     at java.security.AccessController.doPrivileged(Native Method)
     at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
     [...]

MD5-2.7.1.jar 出现在 Business 和 ear 的 MavenDependencies 中,它看起来像我已经在使用的任何其他库(据我所知),所以我不明白......

请帮帮我 =)

尼古拉斯

最佳答案

您的 jar 文件应位于 com/twmacinta/util/MD5/2.7.1/MD5-2.7.1.jar

与其他工件相比,Maven 2+ 就是这样组织 jar 的。

关于java - 在 Nexus 上上传 jar 后 Maven 项目中出现 ClassNotFound 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5117533/

相关文章:

java - 使用 Apache POI 创建的单元格评论具有透明背景

java - Jmockit NullPointerException 与 Junit

Java归并排序算法

jakarta-ee - Weld 中的启动类

Java ME 和 Java EE 通信

java - 回调方法读取头数据卡住。使用Grpc JAVA

java - 生成包含 Cobertura 报告的 Maven 站点

java - 如何将源代码添加到 Maven 中的依赖库?

java - 使用 Maven 2 和 Glassfish 3 对 EJB 进行单元测试

java - 存储当前编辑的文件列表