4

I have a maven project and an SBT project as a module of the maven project. I need to create a single command maven build, which executes SBT package task too.

Is there any plugin which I can use to integrate SBT with maven?

Thanks.

tiran
  • 2,389
  • 1
  • 16
  • 28

2 Answers2

2

One option is using "Exec Maven Plugin", and here is an example to do a "play compile"

  <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>exec-maven-plugin</artifactId>
    <version>1.2.1</version>
    <executions>
      <execution>
        <goals>
          <goal>exec</goal>
        </goals>
      </execution>
    </executions>
    <configuration>
      <executable>${path.to.play}</executable>
      <workingDirectory>${path.to.project.root}</workingDirectory>
      <arguments>
        <argument>compile</argument>
      </arguments>
    </configuration>
  </plugin>
dsun
  • 208
  • 3
  • 6
1

Use the maven antrun plugin (my example is for building a Scala.js app).

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-antrun-plugin</artifactId>
            <version>1.8</version>
            <executions>
                <execution>
                    <phase>pre-integration-test</phase>
                    <configuration>
                        <target>
                            <exec executable="cmd.exe"
                                  spawn="true">
                                <arg value="/c"/>
                                <arg value="C:\Program Files (x86)\sbt\bin\sbt.bat"/>
                                <arg value="fullOptJS"/>
                            </exec>
                        </target>
                    </configuration>
                    <goals>
                        <goal>run</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

Credit due to @checat for suggesting this in his comment and the discussion at Launching a windows batch script using Maven exec plugin blocks the build even though the script uses "start"

Other thoughts; it might still be worth using mvn-exec on non Windows systems, perhaps using maven profiles. If I go this route, I'll try to remember to update the answer.

Community
  • 1
  • 1
bbarker
  • 11,636
  • 9
  • 38
  • 62