title: Multi-module Spring Boot and start-class
body: <p>I have made my application multi-module with the plan of eventually splitting them into multiple repos.</p>
  
  <p>I'm having problems figuring out how to make <code>mvn spring-boot:run</code> work with my layout (which may be the problem).</p>
  
  <p>actually directory structure is</p>
  
  <pre><code> xenoterracide/
       rpf/
       rpf-application/
  </code></pre>
  
  <p>when I run <code>mvn test</code> from <code>xenoterracide</code> that passes fine, and when I start my <code>Application</code> class that works fine.</p>
  
  <p>if I cd into <code>rpf-application</code> and run <code>mvn compile</code> it tells me that it can't find the dependencies, I'm guessing this is because things are meant to be run from the repository root.</p>
  
  <pre><code>[INFO] ------------------------------------------------------------------------
  [INFO] Building rpf-application 0.1.0-SNAPSHOT
  [INFO] ------------------------------------------------------------------------
  [WARNING] The POM for com.xenoterracide:security-rbac-jpa:jar:0.1.0-SNAPSHOT is missing, no dependency information available
  [WARNING] The POM for com.xenoterracide:http:jar:0.1.0-SNAPSHOT is missing, no dependency information available
  [WARNING] The POM for com.xenoterracide:rpf-domain:jar:0.1.0-SNAPSHOT is missing, no dependency information available
  [WARNING] The POM for com.xenoterracide:rpf-liquibase:jar:0.1.0-SNAPSHOT is missing, no dependency information available
  </code></pre>
  
  <p>if I try to set the <code>start-class</code> in the <code>xenoterracide/pom.xml</code> it tells me it can't find the class (because of course it's in rpf-application).</p>
  
  <p><code>rpf-application/pom.xml</code></p>
  
  <pre><code>&lt;parent&gt;
      &lt;artifactId&gt;rpf&lt;/artifactId&gt;
      &lt;groupId&gt;com.xenoterracide&lt;/groupId&gt;
      &lt;version&gt;0.1.0-SNAPSHOT&lt;/version&gt;
      &lt;relativePath&gt;../rpf/pom.xml&lt;/relativePath&gt;
  &lt;/parent&gt;
  &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;
  
  &lt;artifactId&gt;rpf-application&lt;/artifactId&gt;
  
  &lt;properties&gt;
      &lt;start-class&gt;com.xenoterracide.RpfApplication&lt;/start-class&gt;
  &lt;/properties&gt;
  
  &lt;dependencies&gt;
      &lt;!-- internal --&gt;
      &lt;dependency&gt;
          &lt;groupId&gt;com.xenoterracide&lt;/groupId&gt;
          &lt;artifactId&gt;security-rbac-jpa&lt;/artifactId&gt;
          &lt;version&gt;0.1.0-SNAPSHOT&lt;/version&gt;
      &lt;/dependency&gt;
  
      &lt;dependency&gt;
          &lt;groupId&gt;com.xenoterracide&lt;/groupId&gt;
          &lt;artifactId&gt;http&lt;/artifactId&gt;
          &lt;version&gt;0.1.0-SNAPSHOT&lt;/version&gt;
      &lt;/dependency&gt;
  
      &lt;dependency&gt;
          &lt;groupId&gt;com.xenoterracide&lt;/groupId&gt;
          &lt;artifactId&gt;rpf-domain&lt;/artifactId&gt;
          &lt;version&gt;0.1.0-SNAPSHOT&lt;/version&gt;
      &lt;/dependency&gt;
  
      &lt;dependency&gt;
          &lt;groupId&gt;com.xenoterracide&lt;/groupId&gt;
          &lt;artifactId&gt;rpf-liquibase&lt;/artifactId&gt;
          &lt;version&gt;0.1.0-SNAPSHOT&lt;/version&gt;
      &lt;/dependency&gt;
  ...
  </code></pre>
  
  <p><code>rpf/pom.xml</code></p>
  
  <pre><code>&lt;parent&gt;
      &lt;artifactId&gt;xenoterracide&lt;/artifactId&gt;
      &lt;groupId&gt;com.xenoterracide&lt;/groupId&gt;
      &lt;version&gt;0.1.0-SNAPSHOT&lt;/version&gt;
  &lt;/parent&gt;
  &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;
  
  &lt;artifactId&gt;rpf&lt;/artifactId&gt;
  &lt;packaging&gt;pom&lt;/packaging&gt;
  &lt;modules&gt;
      &lt;module&gt;../rpf-domain&lt;/module&gt;
      &lt;module&gt;../rpf-application&lt;/module&gt;
      &lt;module&gt;../rpf-liquibase&lt;/module&gt;
  &lt;/modules&gt;
  </code></pre>
  
  <p><code>pom.xml</code></p>
  
  <pre><code>&lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;
  
  &lt;groupId&gt;com.xenoterracide&lt;/groupId&gt;
  &lt;artifactId&gt;xenoterracide&lt;/artifactId&gt;
  &lt;packaging&gt;pom&lt;/packaging&gt;
  &lt;version&gt;0.1.0-SNAPSHOT&lt;/version&gt;
  &lt;modules&gt;
      &lt;module&gt;util&lt;/module&gt;
      &lt;module&gt;http&lt;/module&gt;
      &lt;module&gt;security-rbac-api&lt;/module&gt;
      &lt;module&gt;security-rbac-jpa&lt;/module&gt;
      &lt;module&gt;hibernate&lt;/module&gt;
      &lt;module&gt;entity-jpa&lt;/module&gt;
      &lt;module&gt;rpf&lt;/module&gt;
      &lt;module&gt;test-repositories&lt;/module&gt;
      &lt;module&gt;entity-api&lt;/module&gt;
  &lt;/modules&gt;
  &lt;properties&gt;
      &lt;!-- use UTF-8 for everything --&gt;
      &lt;project.build.sourceEncoding&gt;UTF-8&lt;/project.build.sourceEncoding&gt;
      &lt;project.reporting.outputEncoding&gt;UTF-8&lt;/project.reporting.outputEncoding&gt;
      &lt;java.version&gt;1.8&lt;/java.version&gt;
  &lt;/properties&gt;
  
  &lt;parent&gt;
      &lt;groupId&gt;io.spring.platform&lt;/groupId&gt;
      &lt;artifactId&gt;platform-bom&lt;/artifactId&gt;
      &lt;version&gt;1.1.2.RELEASE&lt;/version&gt;
   &lt;/parent&gt;
  </code></pre>
  
  <p>how can I make <code>mvn spring-boot:run</code> work from either the root of the repository (xenoterracide) or from <code>rpf-application</code>?</p>