I'm totally lost as to how to get these 3 executions to execute when I perform a mvn clean install
. I know they're inside the PluginManagement section, and I feel like that is part of the issue. Thanks
<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>
<parent>
<groupId>jhu.rahLeague</groupId>
<artifactId>rahLeague</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<groupId>jhu.rahLeagueImpl</groupId>
<artifactId>rahLeagueImpl</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>rahLeagueImpl</name>
<profiles>
<profile>
<id>testing</id>
<activation>
<property>
<name>!skipTests</name>
</property>
</activation>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>hibernate3-maven-plugin</artifactId>
<version>${hibernate3-maven-plugin.version}</version>
<extensions>true</extensions>
<dependencies>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>${hibernate3.version}</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>drop-db-before-test</id>
<phase>process-test-classes</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<autocommit>true</autocommit>
<fileset>
<basedir>${basedir}/src</basedir>
<includes>
<include>main/resources/ddl/*drop*.ddl</include>
</includes>
</fileset>
<onError>continue</onError>
</configuration>
</execution>
<execution>
<id>create-db-before-test</id>
<phase>process-test-classes</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<autocommit>true</autocommit>
<fileset>
<basedir>${basedir}/src</basedir>
<includes>
<include>main/resources/ddl/*create*.ddl</include>
</includes>
</fileset>
<print>true</print>
</configuration>
</execution>
<execution>
<id>populate-db-before-test</id>
<phase>process-test-classes</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<autocommit>true</autocommit>
<fileset>
<basedir>${basedir}/src</basedir>
<includes>
<include>test/resources/ddl/**/*populate*.ddl</include>
</includes>
</fileset>
</configuration>
</execution>
<!-- <execution>
<id>drop-db-after-test</id>
<phase>test</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<autocommit>true</autocommit>
<fileset>
<basedir>${basedir}/src</basedir>
<includes>
<include>main/resources/ddl/**/*drop*.ddl</include>
</includes>
</fileset>
</configuration>
</execution> -->
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>sql-maven-plugin</artifactId>
<version>${sql-maven-plugin.version}</version>
<dependencies>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>${h2db.version}</version>
</dependency>
</dependencies>
<configuration>
<username>${jdbc.user}</username>
<password>${jdbc.password}</password>
<driver>${jdbc.driver}</driver>
<url>${jdbc.url}</url>
</configuration>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
<dependencies>
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.3</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.3</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.2.6.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.0-api</artifactId>
<version>1.0.1.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>4.2.6.Final</version>
</dependency>
<!-- <dependency> <groupId>org.hibernate.common</groupId> <artifactId>hibernate-commons-annotations</artifactId>
<version>4.0.4.Final</version> </dependency> -->
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.3.173</version>
</dependency>
<!-- <dependency>
<groupId>org.apache.cocoon</groupId>
<artifactId>cocoon-databases-hsqldb-client</artifactId>
<version>1.0.0</version>
</dependency> -->
</dependencies>
</project>
You need to also reference the plugin in the plugins
section of the profile (currently you only have the maven-compiler-plugin
referenced there) and not just in the pluginManagement
section.
So your pom would be:
...
<profiles>
<profile>
<id>testing</id>
<activation>
<property>
<name>!skipTests</name>
</property>
</activation>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>hibernate3-maven-plugin</artifactId>
<!-- excluded the configuration to keep this as short as possible -->
...
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>sql-maven-plugin</artifactId>
<!-- etc -->
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
...
</plugin>
<!-- add hibernate3-maven-plugin here. Don't need to -->
<!-- define a version or configuration as that has -->
<!-- already been done in the pluginManagement section -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>hibernate3-maven-plugin</artifactId>
</plugin>
<!-- am presuming you would also want the sql-maven-plugin to run -->
<!-- so you would need to add it here as well -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>sql-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</profile>
</profiles>
<dependencies>
...
The standard plugins
section of a POM (and profile) defines what plugins should be executed during the build (and how based on their configuration).
The pluginManagement
section also contains plugin
elements in much the same way, except that rather than configuring plugin
information for this particular project build, it is intended to configure project builds that inherit from this one (it can be used to configure the current pom as well). However, this only configures plugin
s that are actually referenced within the plugins
element in the children (or the current pom - this is what was missing in your case). The children have every right to override pluginManagement
definitions.
So generally you would use the pluginManagement
section to define standard configuration of a plugin, and then activate it in child poms (and override any configuration as required) by referencing the plugin in the standard plugins
section of the pom.
Maven's documentation on the POM can be found here: http://maven.apache.org/pom.html (can explain it much better than me)
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.