step 1 : 配置maven的策略
<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>${exec.maven.plugin.version}</version> <executions> <execution> <phase>prepare-package</phase> <goals> <goal>java</goal> </goals> </execution> </executions> <configuration> <mainClass>com.test.SchemaGenerator</mainClass> <arguments> <argument>com.test.db.entity</argument> <argument>${project.basedir}/sql/</argument> <argument>test.sql</argument> </arguments> </configuration> </plugin>
step 2 :实现策略操作:
Configuration cfg; cfg = new Configuration(); cfg.setProperty("hibernate.hbm2ddl.auto", "create");// 从包中得到所有相关class File directory = null; ClassLoader cld = Thread.currentThread().getContextClassLoader(); URL resource = getResource(packageName, cld); directory = new File(resource.getFile()); Class.forName(className) for clazz in classes cfg.addAnnotatedClass(clazz); cfg.setProperty("hibernate.dialect","org.hibernate.dialect.MySQLDialect"); SchemaExport export = new SchemaExport(cfg); export.setDelimiter(":"); export.setOutputFile(directory + fileName); export.setFormat(true); export.execute(true, false, false, false);