Я хочу выполнить build.xml (файл сборки Ant) с использованием GMaven (плагин Maven для встроенного выполнения Groovy в POM). Так как я должен выполнить buildfile несколько раз с использованием maven-antrun-plugin, это не вариант. Файл сборки развивается и взят из партнерского проекта с небольшими изменениями. Вот почему я не хочу помещать логику в другое окружение (код Groovy или конфигурация Maven).
Я беру список свойств (имена среды и компьютеров, которые могут сильно различаться по количеству и именам, на мой взгляд, их нельзя поместить в модули) из файла xml и хочу выполнить сборки ant для каждой из этих машин. Я нашел метод executeTarget в javadocs, но не о том, как установить местоположение файла сборки. Как я могу это сделать - и этого достаточно?
Что у меня выглядит следующим образом:
<plugin>
<groupId>org.codehaus.groovy.maven</groupId>
<artifactId>gmaven-plugin</artifactId>
<executions>
<execution>
<id>some ant builds</id>
<phase>process-sources</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<source>
def ant = new AntBuilder()
def machines = new XmlParser().parse(new File(project.build.outputDirectory + '/MachineList.xml'));
machines.children().each {
log.info('Creating machine description for ' + it.Id.text() + ' / ' + it.Environment.text());
ant.project.setProperty('Environment',it.Environment.text());
ant.project.setProperty('Machine',it.Id.text());
// What's missing?
ant.project.executeTarget('Tailoring');
}
log.info('Ant has finished.')
</source>
</configuration>
</execution>
</executions>
</plugin>