X-Git-Url: https://juplo.de/gitweb/?p=hibernate4-maven-plugin;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fde%2Fjuplo%2Fplugins%2Fhibernate4%2FHbm2DdlMojo.java;h=18351f079b01668619fd831366821834109145d9;hp=f09cbd676b5d20aaee67832efb691ec8a37c2929;hb=727d1a35bb213589270b097d04d5a1f480bffef6;hpb=99a7eaddd1301df0d151f01791e3d177297670aa diff --git a/src/main/java/de/juplo/plugins/hibernate4/Hbm2DdlMojo.java b/src/main/java/de/juplo/plugins/hibernate4/Hbm2DdlMojo.java index f09cbd67..18351f07 100644 --- a/src/main/java/de/juplo/plugins/hibernate4/Hbm2DdlMojo.java +++ b/src/main/java/de/juplo/plugins/hibernate4/Hbm2DdlMojo.java @@ -88,7 +88,7 @@ public class Hbm2DdlMojo extends AbstractMojo public final static String NAMING_STRATEGY="hibernate.ejb.naming_strategy"; public final static String ENVERS = "hibernate.export.envers"; - public final static String MD5S = "schema.md5s"; + public final static String MD5S = "hibernate4-generatedschema.md5s"; private final static Pattern split = Pattern.compile("[^,\\s]+"); @@ -178,7 +178,7 @@ public class Hbm2DdlMojo extends AbstractMojo * The excecution is skipped automatically, if no modified or newly added * annotated classes are found and the dialect was not changed. * - * @parameter property="maven.test.skip" default-value="false" + * @parameter property="hibernate.skip" default-value="${maven.test.skip}" * @since 1.0 */ private boolean skip; @@ -344,7 +344,7 @@ public class Hbm2DdlMojo extends AbstractMojo boolean modified = false; File saved = new File(buildDirectory + File.separator + MD5S); - if (saved.exists()) + if (saved.isFile() && saved.length() > 0) { try { @@ -875,9 +875,34 @@ public class Hbm2DdlMojo extends AbstractMojo } SchemaExport export = new SchemaExport(config, connection); - export.setOutputFile(outputFile); export.setDelimiter(delimiter); export.setFormat(format); + + File outF = new File(outputFile); + + if (!outF.isAbsolute()) + { + // Interpret relative file path relative to build directory + outF = new File(buildDirectory, outputFile); + getLog().info("Adjusted relative path, resulting path is " + outF.getPath()); + } + + // Ensure that directory path for specified file exists + File outFileParentDir = outF.getParentFile(); + if (null != outFileParentDir && !outFileParentDir.exists()) + { + try + { + getLog().info("Creating directory path for output file:" + outFileParentDir.getPath()); + outFileParentDir.mkdirs(); + } + catch (Exception e) + { + getLog().error("Error creating directory path for output file: " + e.getLocalizedMessage()); + } + } + + export.setOutputFile(outF.getPath()); export.execute(target, type); for (Object exception : export.getExceptions())