1

問題: 12:03:10,126 エラー org.hibernate.tool.hbm2ddl.SchemaExport - スキーマのエクスポートに失敗しました org.hibernate.HibernateException: JDBC ドライバー クラスが見つかりません: com.mysql.jdbc.Driver

モジュールに分割されたプロジェクトがあります: ParentProject と ChildModule。ChildModule の pom.xml をコンパイルしようとすると、すべて正常に動作し、maven はデータベースに正常に接続してテーブルを作成します。ただし、ParentProject からコンパイルすると、上記のエラーが発生しました (hbm2ddl の実行中)。問題は何ですか?

ここに私のpom.xmlファイルがあります:

親プロジェクト pom.xml:

<project ... >
<build>
        <plugins>

            <plugin>
                <!-- JDK version used to compile project -->
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.0.2</version>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>hibernate3-maven-plugin</artifactId>
                <version>2.2</version>
            </plugin>

        </plugins>
    </build>

    <repositories>
        <repository>
            <id>JBOSS</id>
            <name>JBoss Repository</name>
            <url>http://repository.jboss.org/maven2/</url>
        </repository>
        <repository>
            <id>Codehaus Snapshots</id>
            <url>http://snapshots.repository.codehaus.org/</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
            <releases>
                <enabled>false</enabled>
            </releases>
        </repository>
    </repositories>

    <pluginRepositories>
        <pluginRepository>
            <id>Codehaus Snapshots</id>
            <url>http://snapshots.repository.codehaus.org/</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
            <releases>
                <enabled>true</enabled>
            </releases>
        </pluginRepository>
    </pluginRepositories>

    <dependencyManagement>
        <dependencies>
        ...
        </dependencies>
    </dependencyManagement>

    <modules>
        <module>../ChildModule</module>
    </modules>  
</project>

子モジュール pom.xml:

<project ... >

    <parent>
        <groupId>com.somepackage</groupId>
        <artifactId>ChildModule</artifactId>
        <version>0.1</version>
        <relativePath>../ParentProject/pom.xml</relativePath>
    </parent>

    ...

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3.1</version>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>hibernate3-maven-plugin</artifactId>                
                <executions>

                    <execution>
                        <id>generate-entities</id>
                        <phase>generate-sources</phase>
                        <goals>
                            <goal>hbm2java</goal>
                        </goals>
                        <configuration>
                            <components>
                                <component>
                                    <name>hbm2java</name>
                                    <implementation>configuration</implementation>
                                    <outputDirectory>${generated-source-dir}</outputDirectory>
                                </component>
                            </components>
                            <componentProperties>                               
                                <configurationFile>src/main/resources/hibernate.cfg.xml</configurationFile>
                                <jdk5>true</jdk5>
                            </componentProperties>
                        </configuration>
                    </execution>

                    <execution>
                        <id>generate-schema</id>
                        <phase>process-classes</phase>
                        <goals>
                            <goal>hbm2ddl</goal>
                        </goals>

                        <configuration>
                            <componentProperties>
                                <outputfilename>schema.ddl</outputfilename>
                                <drop>true</drop>
                                <ejb3>false</ejb3>
                            </componentProperties>
                        </configuration>

                    </execution>

                </executions>               
                <dependencies>
                    <dependency>
                        <groupId>mysql</groupId>
                        <artifactId>mysql-connector-java</artifactId>
                        <version>5.1.17</version>
                    </dependency>
                    <dependency>
                        <groupId>cglib</groupId>
                        <artifactId>cglib-nodep</artifactId>
                        <version>2.2.2</version>
                    </dependency>
                </dependencies>
            </plugin>

        </plugins>
    </build>


    <dependencies>

    ...

    </dependencies>

    <properties>
        <generated-source-dir>generated-sources/hibernate3</generated-source-dir>
        <generated-resource-dir>generated-resources/hibernate3</generated-resource-dir>
    </properties>

</project>
4

1 に答える 1

1

mysql-connector-java親のプラグインには、子が持っている への依存関係がありません。この依存関係を親のプラグインに追加 (または移動) することをお勧めします。

于 2011-10-09T07:04:03.373 に答える