From 473c3ef285c19e0f0b85643b67bbd77e06c0b926 Mon Sep 17 00:00:00 2001 From: Kai Moritz <km@juplo.de> Date: Tue, 28 Oct 2014 23:37:45 +0100 Subject: [PATCH] Explained how to suppress dependency-scanning in documentation Also added a test-case to be sure, that dependency-scanning is skipped, if the parameter "dependencyScanning" is set to "none". --- src/it/ignored-dependency/ignored/pom.xml | 22 ++++++++ .../src/main/java/ignored/IgnoredEntity.java | 15 ++++++ src/it/ignored-dependency/main/pom.xml | 53 +++++++++++++++++++ .../main/src/main/java/main/MainEntity.java | 19 +++++++ .../main/resources/META-INF/persistence.xml | 17 ++++++ src/it/ignored-dependency/pom.xml | 16 ++++++ src/it/ignored-dependency/schema.sql | 7 +++ src/it/ignored-dependency/verify.bsh | 7 +++ .../juplo/plugins/hibernate4/Hbm2DdlMojo.java | 3 ++ src/site/xhtml/pitfalls.xhtml | 18 ++++++- 10 files changed, 176 insertions(+), 1 deletion(-) create mode 100644 src/it/ignored-dependency/ignored/pom.xml create mode 100644 src/it/ignored-dependency/ignored/src/main/java/ignored/IgnoredEntity.java create mode 100644 src/it/ignored-dependency/main/pom.xml create mode 100644 src/it/ignored-dependency/main/src/main/java/main/MainEntity.java create mode 100644 src/it/ignored-dependency/main/src/main/resources/META-INF/persistence.xml create mode 100644 src/it/ignored-dependency/pom.xml create mode 100644 src/it/ignored-dependency/schema.sql create mode 100644 src/it/ignored-dependency/verify.bsh diff --git a/src/it/ignored-dependency/ignored/pom.xml b/src/it/ignored-dependency/ignored/pom.xml new file mode 100644 index 00000000..28e8ab9b --- /dev/null +++ b/src/it/ignored-dependency/ignored/pom.xml @@ -0,0 +1,22 @@ +<?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>de.juplo</groupId> + <artifactId>ignored</artifactId> + <version>1</version> + + <dependencies> + <dependency> + <groupId>org.hibernate</groupId> + <artifactId>hibernate-core</artifactId> + <version>4.3.5.Final</version> + </dependency> + </dependencies> + + <properties> + <maven.compiler.source>1.7</maven.compiler.source> + <maven.compiler.target>1.7</maven.compiler.target> + </properties> + +</project> diff --git a/src/it/ignored-dependency/ignored/src/main/java/ignored/IgnoredEntity.java b/src/it/ignored-dependency/ignored/src/main/java/ignored/IgnoredEntity.java new file mode 100644 index 00000000..afb73c38 --- /dev/null +++ b/src/it/ignored-dependency/ignored/src/main/java/ignored/IgnoredEntity.java @@ -0,0 +1,15 @@ +package ignored; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; + +@Entity +public class IgnoredEntity +{ + @Id + @GeneratedValue + Long id; + + String name; +} diff --git a/src/it/ignored-dependency/main/pom.xml b/src/it/ignored-dependency/main/pom.xml new file mode 100644 index 00000000..d198fc9b --- /dev/null +++ b/src/it/ignored-dependency/main/pom.xml @@ -0,0 +1,53 @@ +<?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>de.juplo</groupId> + <artifactId>main</artifactId> + <version>1</version> + <packaging>jar</packaging> + <name>main</name> + + <dependencies> + <dependency> + <groupId>org.hibernate</groupId> + <artifactId>hibernate-core</artifactId> + <version>4.3.5.Final</version> + </dependency> + <dependency> + <groupId>de.juplo</groupId> + <artifactId>ignored</artifactId> + <version>1</version> + </dependency> + </dependencies> + + <properties> + <maven.compiler.source>1.7</maven.compiler.source> + <maven.compiler.target>1.7</maven.compiler.target> + </properties> + + <build> + <plugins> + <plugin> + <groupId>de.juplo</groupId> + <artifactId>hibernate4-maven-plugin</artifactId> + <version>@project.version@</version> + <executions> + <execution> + <goals> + <goal>export</goal> + </goals> + </execution> + </executions> + <configuration> + <target>NONE</target> + <format>true</format> + <type>CREATE</type> + <hibernateDialect>org.hibernate.dialect.PostgreSQL9Dialect</hibernateDialect> + <scanDependencies>none</scanDependencies> + </configuration> + </plugin> + </plugins> + </build> + +</project> diff --git a/src/it/ignored-dependency/main/src/main/java/main/MainEntity.java b/src/it/ignored-dependency/main/src/main/java/main/MainEntity.java new file mode 100644 index 00000000..a86f8096 --- /dev/null +++ b/src/it/ignored-dependency/main/src/main/java/main/MainEntity.java @@ -0,0 +1,19 @@ +package main; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; +import javax.persistence.Transient; + +import ignored.IgnoredEntity; + +@Entity +public class MainEntity +{ + @Id + @GeneratedValue + long id; + + @Transient + IgnoredEntity ignoredEntity; +} diff --git a/src/it/ignored-dependency/main/src/main/resources/META-INF/persistence.xml b/src/it/ignored-dependency/main/src/main/resources/META-INF/persistence.xml new file mode 100644 index 00000000..a419eda9 --- /dev/null +++ b/src/it/ignored-dependency/main/src/main/resources/META-INF/persistence.xml @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<persistence version="2.0" + xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation=" + http://java.sun.com/xml/ns/persistence + http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"> + <persistence-unit name="primary"> + <jta-data-source>java:jboss/datasources/PostgreSQLDS</jta-data-source> + + <class>dependent.DependentEntity</class> + + <properties> + <property name="hibernate.hbm2ddl.auto" value="create-drop" /> + <property name="hibernate.show_sql" value="true" /> + </properties> + </persistence-unit> +</persistence> diff --git a/src/it/ignored-dependency/pom.xml b/src/it/ignored-dependency/pom.xml new file mode 100644 index 00000000..27dd2990 --- /dev/null +++ b/src/it/ignored-dependency/pom.xml @@ -0,0 +1,16 @@ +<?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/maven-v4_0_0.xsd"> + + <modelVersion>4.0.0</modelVersion> + <groupId>de.juplo</groupId> + <artifactId>ignored-dependency</artifactId> + <name>Hibernate 4 Maven Plugin - Ignored Dependen Test</name> + <version>1</version> + <packaging>pom</packaging> + + <modules> + <module>ignored</module> + <module>main</module> + </modules> + +</project> diff --git a/src/it/ignored-dependency/schema.sql b/src/it/ignored-dependency/schema.sql new file mode 100644 index 00000000..510de4f2 --- /dev/null +++ b/src/it/ignored-dependency/schema.sql @@ -0,0 +1,7 @@ + + create table MainEntity ( + id int8 not null, + primary key (id) + ); + + create sequence hibernate_sequence; diff --git a/src/it/ignored-dependency/verify.bsh b/src/it/ignored-dependency/verify.bsh new file mode 100644 index 00000000..47470ce6 --- /dev/null +++ b/src/it/ignored-dependency/verify.bsh @@ -0,0 +1,7 @@ +import de.juplo.test.FileComparator; + + +FileComparator comparator = new FileComparator(basedir); + +if (!comparator.isEqual("schema.sql","main/target/schema.sql")) + return false; diff --git a/src/main/java/de/juplo/plugins/hibernate4/Hbm2DdlMojo.java b/src/main/java/de/juplo/plugins/hibernate4/Hbm2DdlMojo.java index fa4ce6a0..85ae5182 100644 --- a/src/main/java/de/juplo/plugins/hibernate4/Hbm2DdlMojo.java +++ b/src/main/java/de/juplo/plugins/hibernate4/Hbm2DdlMojo.java @@ -143,6 +143,9 @@ public class Hbm2DdlMojo extends AbstractMojo * scanned for annotated classes. Multiple scopes can be seperated by * white space or commas. * <p> + * If you do not want any dependencies to be scanned for annotated + * classes, set this parameter to <code>none</code>. + * <p> * The plugin does not scan for annotated classes in transitive * dependencies. If some of your annotated classes are hidden in a * transitive dependency, you can simply add that dependency explicitly. diff --git a/src/site/xhtml/pitfalls.xhtml b/src/site/xhtml/pitfalls.xhtml index 50006953..90e09241 100644 --- a/src/site/xhtml/pitfalls.xhtml +++ b/src/site/xhtml/pitfalls.xhtml @@ -151,7 +151,7 @@ mvn hibernate4:export -Dhibernate.export.force=true</pre> executed, you can configure that explicitly like this: </p> <pre class="prettyprint linenums lang-html"> ->plugin< +<plugin> <groupId>de.juplo</groupId> <artifactId>hibernate4-maven-plugin</artifactId> ... @@ -163,5 +163,21 @@ mvn hibernate4:export -Dhibernate.export.force=true</pre> Background-information for this design-decission can be found on the extra page <a href="./skip.html">To skip or not to skip: that is the question</a>... </p> + <h2>I do not want my dependencies to be scanned for hibernate annotations</h2> + <p> + If you do not want your dependencies to be scanned for hibernate annotations, + you can pass <code>-Dhibernate.export.scan_dependencies=none</code> to maven + or set <code>scanDependencies</code> to <code>none</code> in the configuration + of the plugin like this: + </p> + <pre class="prettyprint linenums lang-html"> +<plugin> + <groupId>de.juplo</groupId> + <artifactId>hibernate4-maven-plugin</artifactId> + ... + <configuration> + <scanDependencies>none</scanDependencies> + </configuration> +</plugin></pre> </body> </html> -- 2.20.1