【问题标题】:Maven local dependency isn't working: ClassNotFoundExceptionMaven 本地依赖项不起作用:ClassNotFoundException
【发布时间】:2014-11-26 20:10:00
【问题描述】:

我有一个用 netbeans 制作的 Maven Web 项目,并且我有一个本地依赖项:

    <dependency>
        <groupId>com.microsoft.sqlserver</groupId>
        <artifactId>sqljdbc4</artifactId>
        <version>3.0</version>
        <scope>system</scope>
        <systemPath>${basedir}/lib/sqljdbc4.jar</systemPath>
        <optional>true</optional>            
    </dependency>

如果我在 Apache Tomcat 6.0 上运行项目,则该依赖项可以完美运行,但是我有一些按需运行的类(main 方法),当我尝试运行该类时,我得到了这个异常:

java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver

【问题讨论】:

  • 您使用了可选的,这意味着它不是打包工件的一部分。该工件已安装在您的 Tomcat 中...
  • @Shiradit 为什么要为依赖项使用系统路径?我认为类加载器无法找到该类。你能分享你的 pom.xml 吗?

标签: maven netbeans dependencies local


【解决方案1】:

试试这个(它对我有用)

  1. 摆脱 maven 依赖,以及 lib 中的 jar(我们将自动添加它)
  2. 在您的项目中,右键单击“依赖项”->“添加依赖项”
  3. 在对话框中,输入 groupId、artifactId、version 的坐标,点击确定
  4. 这将在依赖关系树中留下一个未解析的 jar。
  5. 右键单击“依赖项”中的jar,选择“手动安装工件”。找到工件并添加它,然后“本地安装”。这会将 jar 安装到本地 repo。此外,由于它是一个网络应用程序,因此 jar 将像往常一样被发送到 lib

现在你应该可以运行它了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-30
    • 2011-08-30
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 2023-03-08
    相关资源
    最近更新 更多