TASKPM/pom.xml
Fernando Bellas Permuy 9f8cf27610 ItEr15S04ArquitecturaServidorItEr14S04 Update to Maven Jetty plugin 6.1.18.
The Maven Jetty plugin has been updated to version 6.1.18. Apart from being a more stable version that the previous one (6.1.12.rc2), it adds the <reload> configuracion option (available from version 6.1.18 onwards). In particular, the plugin has been configured with <reload>manual</reload>. This way Jetty does not scan for changes to project files. Instead, it is necessary to hit "ENTER" key on the Jetty console whenever we want Jetty to reload the application.

Manual reloading has a number of advantages over automatic reloading:

+ ZK can manage by itself the reloading of .zul pages (without intervertion of Jetty).

+ Whenever a developer creates/modifies "n" non ZK-managed files (e.g. .java files) to develop/fix a feature, she/he hits RETURN (after all modifications are done) to verify the changes, causing Jetty to reload the application only once (instead of "n" times when using automatic reloading).

Minimizing the number of times Jetty reloads the application is important, since class loaders do not release memory properly after reloading (in consequence, after a number of reloads, Jetty must be restarted; as usual, JVM memory options can also be used to increase available memory if desired).
2009-07-02 10:45:29 +02:00

471 lines
19 KiB
XML

<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>org.navalplanner</groupId>
<artifactId>navalplanner</artifactId>
<packaging>pom</packaging>
<version>1.0.0</version>
<name>Naval Planner</name>
<!--
===================================================================
-->
<!-- Modules -->
<modules>
<module>navalplanner-business</module>
<module>navalplanner-gantt-zk</module>
<module>navalplanner-webapp</module>
</modules>
<!--
===================================================================
-->
<!--
Default values for properties. These default values are expected
to be valid for most profiles. Specific profiles can overwrite
values when necessary.
-->
<properties>
<!-- Data source properties -->
<dataSource.user>naval</dataSource.user>
<dataSource.password>naval</dataSource.password>
<dataSource.jndiName>jdbc/navalplanner-ds</dataSource.jndiName>
<testDataSource.user>${dataSource.user}</testDataSource.user>
<testDataSource.password>${dataSource.password}</testDataSource.password>
</properties>
<!--
===================================================================
-->
<!--
Profiles. * The build is always executed by selecting at least
two non-exclusive profiles. By default, such profiles are "dev"
and "postgresql" (meaning "use PostgreSQL assuming a development
environment"). * General profiles. There are two general
(database-independent) profiles: "dev" and "prod". The former is
used for development (including testing) and the latter is used
for production (including testing). As shown below, two
dataSources (databases schemas) are used in both profiles: one
for running (dataSource) and another one for the Maven test fase
(testDataSource). Note the Maven test fase is executed both with
development and production profiles. * Database-specific
profiles. There is a profile for each supported database. *
Specific profiles can be defined to better adapt to a particular
environment by overwriting/adding properties and/or including
other chunks of valid XML. * Usage: + mvn <<goal>> => Execute
<<goal>> with default profiles. + mvn -Pdev,<<database>> <<goal>
=> Execute <<goal>> with "dev" and <<database>> profiles. + mvn
-Pprod,<<database>> <<goal>> => Execute <<goal>> with "prod" and
<<database>> profiles. + Note that when using -P option all
desired profiles must be specified (e.g. "-Pprod" with the
intention to select "prod" and the default database profile is
not correct; "-Pprod,<<database>>" must be used instead). *
Examples: + mvn <<goal>> + mvn -Ppostgresql,prod <<goal>> + mvn
-Ppostgresql,dev <<goal>>
-->
<profiles>
<!-- Development profile -->
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<!-- Naval Planner environment properties -->
<navalplanner.mode>dev</navalplanner.mode>
<!-- Hibernate properties -->
<hibernate.show_sql>true</hibernate.show_sql>
<hibernate.format_sql>true</hibernate.format_sql>
<hibernate.use_sql_comments>true</hibernate.use_sql_comments>
<hibernate.hbm2ddl.auto>update</hibernate.hbm2ddl.auto>
</properties>
</profile>
<!-- Production profile -->
<profile>
<id>prod</id>
<properties>
<!-- Naval Planner environment properties -->
<navalplanner.mode>prod</navalplanner.mode>
<!-- Hibernate properties -->
<hibernate.show_sql>false</hibernate.show_sql>
<hibernate.format_sql>false</hibernate.format_sql>
<hibernate.use_sql_comments>false</hibernate.use_sql_comments>
<hibernate.hbm2ddl.auto>update</hibernate.hbm2ddl.auto>
</properties>
</profile>
<!-- PostgreSQL profile -->
<profile>
<id>postgresql</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<!-- JDBC driver properties -->
<jdbcDriver.groupId>postgresql</jdbcDriver.groupId>
<jdbcDriver.artifactId>postgresql</jdbcDriver.artifactId>
<jdbcDriver.version>8.3-603.jdbc4</jdbcDriver.version>
<jdbcDriver.className>org.postgresql.Driver</jdbcDriver.className>
<!-- Data source properties -->
<dataSource.url>jdbc:postgresql://localhost/naval${navalplanner.mode}</dataSource.url>
<testDataSource.url>${dataSource.url}test</testDataSource.url>
<!-- Hibernate properties -->
<hibernate.dialect>org.hibernate.dialect.PostgreSQLDialect</hibernate.dialect>
</properties>
</profile>
<!-- MySQL profile -->
<profile>
<id>mysql</id>
<properties>
<!-- JDBC driver properties -->
<jdbcDriver.groupId>mysql</jdbcDriver.groupId>
<jdbcDriver.artifactId>mysql-connector-java</jdbcDriver.artifactId>
<jdbcDriver.version>5.0.5</jdbcDriver.version>
<jdbcDriver.className>com.mysql.jdbc.Driver</jdbcDriver.className>
<!-- Data source properties -->
<dataSource.url>jdbc:mysql://localhost/naval${navalplanner.mode}</dataSource.url>
<testDataSource.url>${dataSource.url}test</testDataSource.url>
<!-- Hibernate properties -->
<hibernate.dialect>org.hibernate.dialect.MySQLDialect</hibernate.dialect>
</properties>
</profile>
<!-- HSQLDB profile -->
<profile>
<id>hsqldb</id>
<properties>
<!-- JDBC driver properties -->
<jdbcDriver.groupId>hsqldb</jdbcDriver.groupId>
<jdbcDriver.artifactId>hsqldb</jdbcDriver.artifactId>
<jdbcDriver.version>1.8.0.7</jdbcDriver.version>
<jdbcDriver.className>org.hsqldb.jdbcDriver</jdbcDriver.className>
<!-- Data source properties -->
<dataSource.user>sa</dataSource.user>
<dataSource.password />
<dataSource.url>jdbc:hsqldb:target/hsqldb/naval${navalplanner.mode};shutdown=true</dataSource.url>
<testDataSource.url>jdbc:hsqldb:target/hsqldb/naval${navalplanner.mode}test;shutdown=true</testDataSource.url>
<!-- Hibernate properties -->
<hibernate.dialect>org.hibernate.dialect.HSQLDialect</hibernate.dialect>
</properties>
</profile>
</profiles>
<!--
===================================================================
-->
<!-- Dependency management -->
<dependencyManagement>
<dependencies>
<!-- JDBC driver -->
<dependency>
<groupId>${jdbcDriver.groupId}</groupId>
<artifactId>${jdbcDriver.artifactId}</artifactId>
<version>${jdbcDriver.version}</version>
<scope>test</scope>
</dependency>
<!-- Hibernate -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate</artifactId>
<version>3.2.6.ga</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-annotations</artifactId>
<version>3.3.1.GA</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>3.0.0.ga</version>
</dependency>
<!-- JUnit -->
<!--
IMPORTANT: Spring TestContext 2.5.x is not compatible
with JUnit 4.5.
-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.4</version>
<scope>test</scope>
</dependency>
<!-- Easy mock -->
<dependency>
<groupId>org.easymock</groupId>
<artifactId>easymock</artifactId>
<version>2.4</version>
<scope>test</scope>
</dependency>
<!-- Spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring</artifactId>
<version>2.5.6</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>2.5.6</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.2.3</version>
<classifier>jdk15</classifier>
</dependency>
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.2</version>
</dependency>
<dependency>
<groupId>net.sf.ezmorph</groupId>
<artifactId>ezmorph</artifactId>
<version>1.0.6</version>
</dependency>
<!-- Commons lang-->
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.4</version>
</dependency>
<!-- Commons Logging (required by many frameworks)-->
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.0.4</version>
</dependency>
<!-- BeanShell (required by ZK)-->
<dependency>
<groupId>org.beanshell</groupId>
<artifactId>bsh</artifactId>
<version>2.0b4</version>
<scope>runtime</scope>
</dependency>
<!-- Apache Commons Fileupload (required by ZK) -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.2.1</version>
<scope>runtime</scope>
</dependency>
<!-- ZK -->
<dependency>
<groupId>org.zkoss.zk</groupId>
<artifactId>zul</artifactId>
<version>3.6.1</version>
</dependency>
<dependency>
<groupId>org.zkoss.zk</groupId>
<artifactId>zkplus</artifactId>
<version>3.6.1</version>
</dependency>
<dependency>
<groupId>org.zkoss.zk</groupId>
<artifactId>zk</artifactId>
<version>3.6.1</version>
</dependency>
<dependency>
<groupId>org.zkoss.zk</groupId>
<artifactId>zkex</artifactId>
<version>3.6.1</version>
</dependency>
<!-- JGraphT -->
<dependency>
<groupId>org.jgrapht</groupId>
<artifactId>jgrapht-jdk1.5</artifactId>
<version>0.7.3</version>
</dependency>
<!-- Joda Time -->
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>1.6</version>
</dependency>
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time-hibernate</artifactId>
<version>1.1</version>
</dependency>
<!-- Naval Planner ZK Components -->
<dependency>
<groupId>org.navalplanner</groupId>
<artifactId>navalplanner-gantt-zk</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>org.navalplanner</groupId>
<artifactId>navalplanner-gantt-zk</artifactId>
<version>1.0.0</version>
</dependency>
<!-- Naval Planner Business -->
<dependency>
<groupId>org.navalplanner</groupId>
<artifactId>navalplanner-business</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<type>jar</type>
<scope>provided</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<!-- =============================================================== -->
<!-- Filtering -->
<resources>
<!--
Apply filtering to files matching the following
expressions in src/main/resources.
-->
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>*spring-config.xml</include>
<include>*hibernate.cfg.xml</include>
</includes>
</resource>
<!--
Continue considering resources the files in
src/main/resources, but without applying filtering.
-->
<resource>
<directory>src/main/resources</directory>
</resource>
<!-- Filter Jetty configuration -->
<resource>
<directory>../src/main/jetty</directory>
<includes>
<include>jetty-env.xml</include>
</includes>
<targetPath>../jetty</targetPath>
<filtering>true</filtering>
</resource>
</resources>
<testResources>
<!--
Apply filtering to files matching the following
expressions in src/test/resources.
-->
<testResource>
<directory>src/test/resources</directory>
<filtering>true</filtering>
<includes>
<include>*spring-config-test.xml</include>
<include>*hibernate-test.cfg.xml</include>
</includes>
</testResource>
<!--
Continue considering resources the files in
src/test/resources, but without applying filtering.
-->
<testResource>
<directory>src/test/resources</directory>
</testResource>
</testResources>
<plugins>
<!-- =========================================================== -->
<!-- Compiler configuration -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<verbose>true</verbose>
<source>1.6</source>
<target>1.6</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<!-- =========================================================== -->
<!-- Assembly configuration -->
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptors>
<descriptor>src/main/assembly/src.xml</descriptor>
</descriptors>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webResources>
<resource>
<directory>src/main/webapp/META-INF</directory>
<targetPath>META-INF</targetPath>
<filtering>true</filtering>
<includes>
<include>context.xml</include>
</includes>
</resource>
</webResources>
</configuration>
</plugin>
<!-- =========================================================== -->
<!-- Jetty configuration -->
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<version>6.1.18</version>
<configuration>
<jettyEnvXml>target/jetty/jetty-env.xml</jettyEnvXml>
<reload>manual</reload>
<!-- Log to the console. -->
<requestLog implementation="org.mortbay.jetty.NCSARequestLog">
<!--
This do anything for Jetty, but is a
workaround for a Maven bug that prevents the
requestLog from being set.
-->
<append>true</append>
</requestLog>
<!--
<connectors>
<connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
<port>9090</port>
</connector>
</connectors>
-->
</configuration>
<dependencies>
<dependency>
<groupId>${jdbcDriver.groupId}</groupId>
<artifactId>${jdbcDriver.artifactId}</artifactId>
<version>${jdbcDriver.version}</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
</project>