我有一个Maven插件,它在POM文件中配置为
it('should return a 400 message if UserId is not supplied stating that "UserId expected"', function(done) {
request.get('http://localhost:8080/api/v1/user/', function (error, response, body) {
if (error) return done(error);
if (response.statusCode != 400) return done(new Error("Not 400"));
expect(body).to.be.equal('UserId expected');
done();
});
});
现在我想从命令行覆盖<build>
<plugins>
<plugin>
<groupId>com.example</groupId>
<artifactId>example-maven-plugin</artifactId>
<configuration>
<scriptsPath>scripts</scriptsPath>
</configuration>
</plugin>
</plugins>
</build>
,所以我运行
scriptsPath
我可以看到mvn -X example-maven-plugin:goal -DscriptsPath=scripts1
的值仍然是scriptsPath
而不是scripts
。是否可以从命令行覆盖配置参数?
答案 0 :(得分:4)
不幸的是,没有通用的方法来使用属性覆盖maven插件配置。如果插件文档没有明确允许您使用属性来设置配置值,则可以使用以下模式:
<properties>
<scripts.path>scripts</scripts.path>
</properties>
<build>
<plugins>
<plugin>
<groupId>com.example</groupId>
<artifactId>example-maven-plugin</artifactId>
<configuration>
<scriptsPath>${scripts.path}</scriptsPath>
</configuration>
</plugin>
</plugins>
</build>
然后执行maven as
mvn -X example-maven-plugin:goal -Dscripts.path=scripts1