在我的项目的POM父文件中,我有一个配置文件,定义了一些对该项目有用的配置(这样我就无法摆脱这个父POM):
<profile>
<id>wls7</id>
...
<build>
<plugins>
<!-- use java 1.4 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<fork>true</fork>
<source>1.4</source>
<target>1.4</target>
<meminitial>128m</meminitial>
<maxmem>1024m</maxmem>
<executable>%${jdk14.executable}</executable>
</configuration>
</plugin>
</plugins>
</build>
...
</profile>
但是在我的项目中,我只是想重写maven-compiler-plugin的配置,以便使用jdk5而不是jdk4来编译测试类。
这就是为什么我在项目的POM中执行此部分的原因:
<profiles>
<profile>
<id>wls7</id>
<activation>
<property>
<name>jdk</name>
<value>4</value>
</property>
</activation>
<build>
<directory>target-1.4</directory>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<executions>
<execution>
<id>my-testCompile</id>
<phase>test-compile</phase>
<goals>
<goal>testCompile</goal>
</goals>
<configuration>
<fork>true</fork>
<executable>${jdk15.executable}</executable>
<compilerVersion>1.5</compilerVersion>
<source>1.5</source>
<target>1.5</target>
<verbose>true</verbose>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
...
</profiles>
而且不起作用...
我什至尝试覆盖POM常规插件部分中的配置(我的意思是,不是针对特定配置文件,而是针对整个POM)。
可能是什么问题呢 ?
为了阐明我的一些要求:
- 我不想摆脱父POM和在其中定义的配置文件(wls7)(因为我需要很多很多属性,配置等),而这并不是我公司的过程。
- 基于复制父POM和/或其内部定义的配置文件的解决方案不是一个好方法。由于如果
父POM 的负责人更改了某些内容,则
必须向我报告。
这只是继承问题(扩展或覆盖配置文件,即来自上层POM的配置),因此我认为Maven 2应该可以实现。
wls7配置文件如何激活?
—
Pascal Thivent 09年
概要文件wls7和wls10在父POM中均为“ activeByDefault”。但是根据客户需求,只有wls10或两者都由脚本(带有“ -P”参数)
—
构建