maven-antrun-plugin: scriptdef игнорирует CDATA, когда я добавляю элемент
Я использую maven 3.5.0 и пытаюсь запустить простой код JavaScript (обработка набора файлов) с помощью maven-antrun-plugin. В своем собственном build.xml это работает, и при вызове из maven-antrun-plugin это тоже работает. Однако, если я хочу поместить весь build.xml в конфигурацию maven-antrun-plugin, он не будет работать так, как ожидалось.
Минимальный pom.xml (скрипт здесь не использует набор файлов, это всего лишь тестовый пример):
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.stackru</groupId>
<artifactId>test-antrun</artifactId>
<version>1.0-SNAPSHOT</version>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<id>hello</id>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<scriptdef name="hello" language="javascript" classpathref="maven.plugin.classpath">
<element name="fileset" type="fileset"></element>
<![CDATA[
java.lang.System.out.println("Hello World!");
]]>
</scriptdef>
<hello>
<fileset id="stuff" dir="stuff">
</fileset>
</hello>
</target>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
Если я бегу:
mvn antrun:run@hello
Нет "Привет, мир!" выводится в стандартном выводе, а это build-main.xml, который я нахожу в папке target / antrun:
<?xml version="1.0" encoding="UTF-8" ?>
<project name="maven-antrun-" default="main" >
<target name="main">
<scriptdef name="hello" language="javascript" classpathref="maven.plugin.classpath">
<element name="fileset" type="fileset"></element>
</scriptdef>
<hello>
<fileset id="stuff" dir="stuff"></fileset>
</hello>
</target>
</project>
Как видите, CDATA разделен. Однако, если я удаляю элемент из scriptdef и набор файлов из hello, в результате получается build-main.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<project name="maven-antrun-" default="main" >
<target name="main">
<scriptdef name="hello" language="javascript" classpathref="maven.plugin.classpath">java.lang.System.out.println("Hello World!");</scriptdef>
<hello></hello>
</target>
</project>
И я получаю этот вывод:
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building test-antrun 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-antrun-plugin:1.8:run (hello) @ test-antrun ---
[INFO] Executing tasks
main:
Hello World!
[INFO] Executed tasks
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.641 s
[INFO] Finished at: 2017-12-13T16:21:51+01:00
[INFO] Final Memory: 6M/18M
[INFO] ------------------------------------------------------------------------
Я что-то упустил или это может быть ошибкой / отсутствующей функцией в maven-antrun-plugin?
РЕДАКТИРОВАТЬ: я открыл вопрос о Jira: https://issues.apache.org/jira/browse/MANTRUN-207