打包到jar(PostgreSQL)时出现问题

时间:2020-09-08 22:40:43

标签: java postgresql maven heroku intellij-idea

代码错误为:No suitable driver found for [link]

该链接有效-在IntelliJ IDE中运行它可以正常工作,但作为jar文件,它不起作用。在上一个问题中,有人建议添加Maven程序集插件。我可能做错了,这里是构建:

    <build>
        <plugins>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                </configuration>
            </plugin>
        </plugins>
    </build>

它在此处创建错误:return DriverManager.getConnection(dbUrl); 该链接可以正常工作-我什至手动创建了一个URL,创建了一个测试类,然后在IDE中运行它。它已编译,我能够打印连接对象。但是,一旦我将其制成jar文件(构建工件) 注意:如果有关系,数据库是由Heroku建立并托管的。

enter image description here

它不会产生合适的驱动程序错误。我认为这可能是因为我在pom.xml文件中输入了错误的内容,所以我重新复制粘贴了该插件。 如果需要,这里是所有内容(无论如何都包含链接,因为它毕竟是测试数据库)

主要班级

package main;

import java.sql.DriverManager;
import java.sql.SQLException;

public class test {
    public static void main(String[]args) throws SQLException {
        System.out.println(DriverManager.getConnection("jdbc:postgresql://ec2-50-17-90-177.compute-1.amazonaws.com/d7mfkbl2si37vm?sslmode=require&user=tzfelalpgpknzs&password=99cce506d410d89c1ee51f2f8b35eae9c6faacd4b578c29ff18b5e5de3cfcf98"));
    }
}

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>Database-Test</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>
    <build>
        <plugins>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                </configuration>
            </plugin>
        </plugins>
    </build>
    <dependencies>
        <dependency>
            <groupId>org.postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <version>9.4-1203-jdbc4</version>
        </dependency>
    </dependencies>
</project>

1 个答案:

答案 0 :(得分:0)

哈哈,原来我很傻。 多读一点,决定改用Maven阴影。试图再次建造它-没有运气。然后,我发现一个网站,告诉我运行“ mvn clean package”。运行时没有清单文件。然后,找到另一个网站并复制粘贴的其他内容,以替代主要班级(因为无论如何我的清单基本上都是这样做的)。