У меня есть приложение с React в дочернем модуле, и я хотел бы использовать node.exe, который существует в родительском модуле.
В Parent POM я определил переменную с путем пути node.exe
<properties>
<project.name>Corretor Online</project.name>
<nodeBase>C:/col/COL</nodeBase>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
Обс .: Я хотел бы использовать $ {project.basedir} в переменной nodeBase
И я пытаюсь получить доступ к этой переменной в дочернем POM, чтобы передать в качестве параметра в методе ProcessBuilder:
<plugin>
<groupId>org.codehaus.groovy.maven</groupId>
<artifactId>gmaven-plugin</artifactId>
<executions>
<execution>
<id>webpack</id>
<phase>process-resources</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<source><![CDATA[
println "Compiling client code..."
def webpack = new ProcessBuilder(["" + nodeBase + "/node/node", "" + nodeBase + "/node_modules/webpack/bin/webpack.js", "-p", "--progress", "--bail"]).inheritIO().directory(project.getBasedir())
def env = webpack.environment()
env.put("WAR_NAME", project.build.finalName)
def proc_webpack = webpack.start()
proc_webpack.waitForOrKill(120000)
if(proc_webpack.exitValue() != 0)
throw new org.apache.maven.plugin.MojoFailureException("Error compiling client code")
]]></source>
</configuration>
</execution>
</executions>
</plugin>
Но я получаю эту ошибку:
[ОШИБКА] Не удалось выполнить цель org.codehaus.groovy.maven: gmaven-plugin: 1.0: execute (webpack)в проекте col-backoffice-war: groovy.lang.MissingPropertyException: такого свойства нет: nodeBase для класса: script1539714060887 -> [Help 1]
И если я изменю значение с «nodeBase» на «$ {nodeBase}, я получаю эту ошибку:
[ОШИБКА] Не удалось выполнить цель org.codehaus.groovy.maven: gmaven-plugin: 1.0: execute (webpack) в проекте col-backoffice-war:Ошибка запуска, script1539714572018.groovy: 2: неожиданный символ: '#' @ строка 2, столбец134.
Однако, если я поставлю буквальный путь, я смогу построить.
def webpack = new ProcessBuilder(["C:/col/COL/node/node",
"C:/col/COL/node_modules/webpack/bin/webpack.js", "-p",
"--progress",
"--bail"]).inheritIO().directory(project.getBasedir())
Я не смог найти решение для этого, можете ли вы помочь с тем, как я могуполучить доступ к этой переменной?
Большое спасибо!