我把屬性在我的Maven的pom.xml。首先,我砍掉了整個網絡應用程序,以便爲不同的圖層提供單獨的罐子; persistenc/db,service,web(例如,用於spring mvc的控制器)和war。戰爭項目在src/main/resources中包含jsps和properties/config/xml文件。
例如,我的父POM開始是這樣的:
<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>edu.berkeley.ist.waitlist</groupId>
<artifactId>waitlist-parent</artifactId>
<modules>
<module>../waitlist-core</module>
<module>../waitlist-db</module>
<module>../waitlist-web</module>
<module>../waitlist-war</module>
<module>../waitlistd</module>
</modules>
和
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/hbm</directory>
<filtering>true</filtering>
</resource>
</resources>
和
<dependencyManagement>
<!-- dependencies with exclusions -->
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${version.springframework}</version>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
然後我有一大堆的配置文件,爲各種構建:
<profiles>
<!-- ========================================================== -->
<!-- local, hsql -->
<!-- ========================================================== -->
<profile>
<id>localhost-hsql</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<properties>
<!-- need to specify ${basedir} so that hsql creates its files in the right place -->
<db2.url>jdbc:hsqldb:file:${basedir}/target/waitlistv2;shutdown=true</db2.url>
<db2.user>sa</db2.user>
<db2.password />
<jdbc-db2.driverClass>org.hsqldb.jdbcDriver</jdbc-db2.driverClass>
<db2.schema>public</db2.schema>
<db2.hibernate.default_schema>public</db2.hibernate.default_schema>
<db2.hibernate.dialect>org.hibernate.dialect.HSQLDialect</db2.hibernate.dialect>
<dbunit.dataTypeFactoryName>org.dbunit.ext.hsqldb.HsqldbDataTypeFactory</dbunit.dataTypeFactoryName>
<hbmtool.haltOnError>false</hbmtool.haltOnError>
<log.filename>/tmp/waitlist.log</log.filename>
</properties>
</profile>
例如,在等候名單戰/ src目錄/主/資源是文件logback.xml,並將其與
<configuration debug="true">
<appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="RootFileAppender">
<!-- set in the pom.xml file -->
<file>${log.filename}</file>
開始所以,你可以看到從POM中的log.filename屬性用於因到maven的過濾。 (我指定了父類的所有版本,並且子項目只是指定了它們使用的依賴關係,但沒有版本號,我不確定這是否是正確的方法,最佳實踐等等。
此外,waitlist-war取決於waitlist-web,waitlist-web取決於waitlist-core(我的服務層),而waitlist-core取決於waitlist-db。Waitlistd是一個獨立的應用程序,
我還沒有機會使用這種方法還,但它聽起來很合理,發言,它依賴於申請人名單芯)。我也非常喜歡它在鏈接到的演示文稿中的概述(加上它還有很多其他好的信息),所以非常感謝! – 2009-07-31 17:52:07