当前位置: 首页 > 知识库问答 >
问题:

测试阶段未找到Maven依赖项(MySQL连接器)

颜云瀚
2023-03-14

我正在尝试使用maven和java设计一个应用程序。它的一部分连接到MySQL数据库。为此,我使用了< code > class . forname(" com . MySQL . JDBC . driver ");。我还将< code>mysql-connector-java '依赖项添加到我的pom.xml中。但是,当我运行mvn test时,当运行行 connection = driver manager . getconnection(" JDBC:MySQL//krit sit . ddns . net:case tracker ",username,password)`时,我会收到以下错误:

Running com.kritsit.casetracker.server.domain.services.DatabasePersistenceTest
java.sql.SQLException: No suitable driver found for jdbc:mysql//kritsit.ddns.net:CaseTracker
    at java.sql.DriverManager.getConnection(DriverManager.java:689)
    at java.sql.DriverManager.getConnection(DriverManager.java:247)
    at com.kritsit.casetracker.server.domain.services.DatabasePersistence.open(DatabasePersistence.java:26)
    at com.kritsit.casetracker.server.domain.services.DatabasePersistenceTest.testOpen(DatabasePersistenceTest.java:28)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    at junit.framework.TestCase.runTest(TestCase.java:154)
...

我的 maven pom.xml 如下(为简洁起见,省略号显示省略的块:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.kritsit.casetracker</groupId>
  <artifactId>server</artifactId>
  <packaging>jar</packaging>
  <version>0.1a-SNAPSHOT</version>
  <name>CaseTracker Server</name>
  ...
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.34</version>
      <scope>compile</scope>
    </dependency>

    <dependency>
      <groupId>commons-lang</groupId>
      <artifactId>commons-lang</artifactId>
      <version>2.1</version>
    </dependency>

    <dependency>
      <groupId>org.codehaus.plexus</groupId>
      <artifactId>plexus-utils</artifactId>
      <version>3.0.21</version>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      ...
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <executions>
          <execution>
            <id>copy-dependencies</id>
            <phase>package</phase>
            <goals>
              <goal>copy-dependencies</goal>
            </goals>
            <configuration>
              <outputDirectory>${project.build.directory}/lib</outputDirectory>
              <overWriteSnapshots>true</overWriteSnapshots>
              <overWriteRelease>true</overWriteRelease>
            </configuration>
          </execution>
        </executions>
      </plugin>
      ....
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <version>2.5</version>
        <configuration>
          <archive>
            <manifest>
              <addClasspath>true</addClasspath>
              <mainClass>com.kritsit.casetracker.server.CaseTrackerServer</mainClass>
            </manifest>
          </archive>
        </configuration>
      </plugin>
      ...
      <plugin>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.34</version>
      </plugin>
      ....
   </plugins>
</build>
...

我如何解决这个没有合适的司机的问题?

共有1个答案

訾高飞
2023-03-14

您的 JDBC URI 是否正确?它可能在“mysql”之后缺少冒号。尝试

jdbc:mysql://kritsit.ddns.net:CaseTracker

而不是jdbc:mysql//kritsit.ddns.net:CaseTracker

(来自MySQL留档的URI语法)

 类似资料:
  • 问题:Maven在我的测试中找不到一些依赖项 在我的pom中是这样导入的。xml: 我已经试过了: mvn测试编译 使Intellij缓存无效 重启Intellij 清除. m2并重建项目

  • 我和我的朋友正在做一个Java maven项目,它的设置和我们从Git得到的项目是一样的。在我的设置中,Maven正确地导入了所有依赖项,但对于我的朋友,它找不到任何依赖项。 我们尝试过的事情: 右键单击project,单击maven并单击Reimport。 我们都可以上网,所以这也不是问题。而且,Maven在IntelliJ中设置为自动导入。

  • 尝试部署 Web 应用程序时,由于日志记录错误(如下所示),它将失败: Java . lang . nosuchmethoderror:org . SLF 4j . SPI . locationawarelogger . log(Lorg/SLF 4j/Marker;ljava/lang/String;il Java/lang/String;ljava/lang/Throwable;) 我已经谷歌

  • java.sql.没有找到适合jbdc:mysql://localhost:3306/mydb?autoReconnect=true的驱动程序 有没有解决办法?

  • 我有一个编译和运行时所需的依赖项,但我想在运行测试时将其排除。这可能吗?也许,通过设置个人资料?但是,如何仅在生命周期阶段停用它?

  • 我想在Java应用程序中包括Postgres JDBC驱动程序,所以我将其添加为maven依赖项。我从这个列表中选择了最后一个版本,令我惊讶的是,它恰好是由Atlassian主持的。现在我收到这个错误: 丢失的工件postgresql: postgresql: jar: 9.4.1208-jdbc42-atlassian托管 我还尝试了一个不由Atlassian托管的旧版本,但得到了相同的错误!有