在我的一个孩子pom中,我有以下蚂蚁任务:
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>generate-sources</id>
<phase>generate-sources</phase>
<configuration>
<tasks>
<mkdir dir="target/generated-sources"/>
<echo message="${basedir}"/>
<exec dir="${basedir}" executable="protoc/protoc.exe">
<arg value="--java_out=target/generated-sources"/>
<arg value="--proto_path=src/main/protos"/>
<arg value="src/main/protos/updateinfo.proto"/>
</exec>
</tasks>
<sourceRoot>target/generated-sources</sourceRoot>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
当我执行子pom一切都很好时,protoc可以生成所有的protobuff java类。
但是如果我执行父POM,则ant任务找不到protoc.exe。我检查了$ {basedir},它们都是一样的。错误消息包含ant任务查找可执行文件的路径,并且打印路径正确。
"protoc\protoc.exe" (in directory "<Correct child project path>")