I have a multi-module maven project with layout:

parent-project
      - main-project
      - javase-project

javase-project depends on main-project, and running and debugging the
project is done in the javase-project.

But most of the time I'm working in the "main-project", so I'd like to
press "run" in the "main-project" and have the "run" goal executed in the
"javase-project".

After several hours of googling and reading every nbactions.xml file I can
find on github I've resigned myself to the likely fact that this isn't
really possible, but as a workaround, I'm currently attempting using the
exec:exec task to run the mvn executable in the sibling directory.  Eg.

<?xml version="1.0" encoding="UTF-8"?>
<actions>
        <action>
            <actionName>run</actionName>
            <packagings>
                <packaging>jar</packaging>
            </packagings>
            <goals>
                <goal>org.codehaus.mojo:exec-maven-plugin:3.0.0:exec</goal>
            </goals>
            <properties>
                <exec.executable>$M2_HOME/bin/mvn</exec.executable>
                <exec.args>my-run-goal</exec.args>
                <exec.workingdir>../javase-project</exec.workingdir>
            </properties>
        </action>
    </actions>

I have an immediate problem here and a broader problem.  The immediate
problem is that I can't figure out how to get the path to the mvn
executable inside the nbactions.xml file.  (That $M2_HOME in my snippet
there doesn't work).

The broader problem is that, even if I do manage to get the M2_HOME
environment variable, I fear that differences on windows (e.g. mvn.bat vs
mvn) will be difficult to account for using this syntax.

Can anyone suggest a better way to accomplish this?  And if now, does
anyone know how to get the location to the mvn executable inside the
nbactions.xml file?

Thanks for any pointers.

Steve

Reply via email to