我正在测试我的maven插件。
布局为:
src
主要java my.mojo.is.here
… invoke-installer-write-to-file src pom.xml
其中.....itinvoke-installer-write-to-filesrcpom.xml是一个测试项目。它的pom.xml调用插件,然后我验证结果。
我创建了两个测试项目,并使用maven-invoker-plugin来测试插件。我有一个groovy验证器:
String successMessage = 'Test passed'
String outputFilePath = "${project.build.directory}/it/invoke-installer-write-to-file/target/test.output"
File outputFile = new File(outputFilePath)
println "We should get message '$successMessage' from file: $outputFile.absolutePath"
return new File(outputFilePath).exists() && new File(outputFilePath).text.contains(successMessage)
问题是变量project.build。测试项目中的目录指向插件项目的目标。
是否有可能使project.build。目录指向测试项目目标?
现在我必须硬编码一个路径来测试项目路径
String outputFilePath = "${project.build.directory}/it/invoke-installer-write-to-file/target/test.output"
String successMessage = 'Test passed'
String outputFilePath = "$basedir/target/test.output"
File outputFile = new File(outputFilePath)
println "We should get message '$successMessage' from file: $outputFile.absolutePath"
return new File(outputFilePath).exists() && new File(outputFilePath).text.contains(successMessage)
我确实找到了这个:http://maven.apache.org/plugins/maven-invoker-plugin/examples/post-build-script.html
basedir指向测试项目的根目录。