実行時に複数のデータベースを接続するためにMaven依存関係を使用して実行可能なJarを作成しました。 Mavenを使用してビルドされた実行可能なJarファイルは、実行時に複数のデータベースドライバの依存関係を解決していません
は、私は以下のように依存関係を追加しました:<dependency>
<groupId>com.oracle.jdbc</groupId>
<artifactId>ojdbc7</artifactId>
<version>12.1.0.2</version>
</dependency>
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>6.1.7.jre8-preview</version>
</dependency>
を私の場合、私は実行可能なjarファイルを実行したときには、もし適切なドライバがSQL Serverデータベースの見つからないいないOracleデータベースに正常に接続されているができます。
上記の依存関係の順序をSQLサーバーとOracleに変更して実行可能な新しいjarを作成して実行したところ、SQLサーバーデータベースに正常に接続できましたが、エラーが発生しました適切なドライバはありませんOracleデータベース用が見つかりました。
抽出された実行可能な両方のjarファイルを比較すると、構造、ファイル数、ファイルサイズはまったく同じで、違いはありませんでした。したがって、実行可能なjarを構築する際に問題となるものを見つけることができず、単一のjarが両方のデータベースで機能するようになりました。
任意の提案は本当に事前に
おかげで...この奇妙な現象を解決するために私を助けることになります。
.pomファイルは以下のとおりです。
<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>com.mycompany.dataload</groupId>
<artifactId>DataLoadUtilities</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>DataLoadUtilities</name>
<description>A utility project that started with fetching table metadata from SQL Server and Oracle</description>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>com.oracle.jdbc</groupId>
<artifactId>ojdbc7</artifactId>
<version>12.1.0.2</version>
</dependency>
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>6.1.7.jre8-preview</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.7</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.7</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.3</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.mycompany.dataload.main.TableMetadataGeneratorForHive</mainClass>
</transformer>
</transformers>
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
</filters>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>unpack-dependencies</id>
<phase>package</phase>
<goals>
<goal>unpack-dependencies</goal>
</goals>
<configuration>
<excludeScope>system</excludeScope>
<excludes>META-INF/*.SF</excludes>
<excludes>META-INF/*.DSA</excludes>
<excludes>META-INF/*.RSA</excludes>
<excludeGroupIds>junit,org.mockito,org.hamcrest</excludeGroupIds>
<outputDirectory>${project.build.directory}/classes</outputDirectory>
</configuration>
</execution>
</executions></plugin>
</plugins>
</build></project>
'hibernate.cfg.xml'ファイルにはどのような方言を指定しましたか? –