我正在从原型生成项目,并且在此生成的项目的pom中有一个属性(archetype-resources / pom):
<properties>
<myProperty>productionValue</myProperty>
</properties>
以及以下surefire配置:
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.2</version>
<configuration>
<argLine>
-Djava.library.path=${myProperty}
</argLine>
</configuration>
</plugin>
当我运行IT时,我希望myProperty
被原型pom中的值覆盖,而在用户生成此项目时保持不变。我该怎么办?
我尝试将其设置在archetype.properties
文件中,但是其中有一个变量:
myProperty=${project.basedir}/IT/path
。
我希望${project.basedir}
作为IT原型项目的基础,而不是生成的项目,这不是我那样做的情况。
我尝试的另一种方法是使用插件配置:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-archetype-plugin</artifactId>
<version>${maven-archetype.version}</version>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
</goals>
<configuration>
<properties>
<myProperty>${project.basedir}/IT/path</myProperty>
</properties>
</configuration>
</execution>
</executions>
</plugin>
但是它不能正常工作,生成项目的pom中的myProperty
未被更改。我做错了什么事?非常感谢您的帮助!
答案 0 :(得分:0)
问题是我放了
<configuration>
<properties>
<myProperty>${project.basedir}/IT/path</myProperty>
</properties>
</configuration>
在<execution>
标签下,而不在<plugin>
下。完成后,它按预期工作。