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(&quot;Hello World!&quot;);</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

0 ответов

Другие вопросы по тегам