2
我有一個多模塊項目,我試圖根據選擇的配置文件更改子項目中的構建依賴關係。在我的「dev」和「prod」配置文件中,我需要maven包含mysql庫,而在我的「本地」配置文件中,我需要maven包含h2庫。基於配置文件的Maven兒童依賴關係
父POM
<profile>
<id>local</id>
<properties>
<!-- Defines the environment variable -->
<build.env>local</build.env>
</properties>
</profile>
<profile>
<id>dev</id>
<properties>
<!-- Defines the environment variable -->
<build.env>dev</build.env>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>prod</id>
<properties>
<!-- Defines the environment variable -->
<build.env>production</build.env>
</properties>
</profile>
數據模塊POM
<!-- Local specific dependencies -->
<profile>
<id>local</id>
<dependencies>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>${version.h2}</version>
</dependency>
</dependencies>
<activation>
<property>
<name>build.env</name>
<value>local</value>
</property>
</activation>
</profile>
<!-- Dev specific dependencies -->
<profile>
<id>dev</id>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${version.mysql}</version>
</dependency>
</dependencies>
<activation>
<property>
<name>build.env</name>
<value>dev</value>
</property>
</activation>
</profile>
<!-- Production specific dependencies -->
<profile>
<id>prod</id>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${version.mysql}</version>
</dependency>
</dependencies>
<activation>
<property>
<name>build.env</name>
<value>production</value>
</property>
</activation>
</profile>
的問題是,從根項目建設時,切換配置文件似乎不會影響孩子聚甲醛和依賴關係都包含在數據模塊jar文件(沒有配置文件繼承?)。如何觸發子配置文件以包含上面列出的依賴項?
謝謝,我今晚會嘗試這個,但我相信這會起作用。 – 2015-02-10 13:20:59