Skip to content

Instantly share code, notes, and snippets.

@dehora
Created March 9, 2012 21:44
Show Gist options
  • Save dehora/2008850 to your computer and use it in GitHub Desktop.
Save dehora/2008850 to your computer and use it in GitHub Desktop.
maven java+scala

Project structure

  mabba/
      pom.xml
      +-/mabba.core #scala 
        pom.xml
      +-/mabba.http #java 
        pom.xml

Root pom, just a normal pom:

  <?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>net.amadan.mabba</groupId>
      <artifactId>mabba-parent</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      <packaging>pom</packaging>
      <name>mabba</name>
      <description>
          HTTP Table Service
      </description>
      <modules>
          <module>mabba.core</module>
          <module>mabba.http</module>
      </modules>
      <repositories>
          <repository>
              <id>spy</id>
              <name>Spy Repository</name>
              <layout>default</layout>
              <url>http://files.couchbase.com/maven2/</url>
              <snapshots>
                  <enabled>false</enabled>
              </snapshots>
          </repository>
          <repository>
              <id>guice-maven</id>
              <name>guice-maven</name>
              <layout>default</layout>
              <url>http://guice-maven.googlecode.com/svn/trunk</url>
          </repository>
          <repository>
              <id>repo2.maven.org</id>
              <name>repo2.maven.org</name>
              <layout>default</layout>
              <url>http://repo2.maven.org/maven2/</url>
          </repository>
          <repository>
              <id>Sun Repo</id>
              <name>Sun Repo</name>
              <layout>default</layout>
              <url>http://download.java.net/maven/2/</url>
          </repository>
          <repository>
              <id>Twitter Public Repo</id>
              <name>Twitter Public Repo</name>
              <layout>default</layout>
              <url>http://maven.twttr.com</url>
          </repository>
      </repositories>
      <pluginRepositories>
      </pluginRepositories>
      <properties>
          <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
          <commonsCodec.version>1.4</commonsCodec.version>
          <commonsCollections.version>3.2.1</commonsCollections.version>
          <commonsIO.version>2.0.1</commonsIO.version>
          <commonsLang.version>2.3</commonsLang.version>
          <hamcrest.version>1.1</hamcrest.version>
          <guava.version>11.0.2</guava.version>
          <guice.version>3.0</guice.version>
          <guiceAI.version>2.0</guiceAI.version>
          <jackson.version>1.9.0</jackson.version>
          <jersey.version>1.9.1</jersey.version>
          <jersey.18.version>1.8</jersey.18.version>
          <jetty.version>8.1.1.v20120215</jetty.version>
          <joda.version>2.0</joda.version>
          <junit.version>4.10</junit.version>
          <log4j.version>1.2.14</log4j.version>
          <metrics.version>2.0.3</metrics.version>
          <mockito.version>1.9.0</mockito.version>
          <netty.version>3.2.4.Final</netty.version>
          <protobuf.version>2.1.0</protobuf.version>
          <servlets.version>3.0.1</servlets.version>
          <slf4j.version>1.6.4</slf4j.version>
          <snakeyaml.version>1.10</snakeyaml.version>
          <spyMemcached.version>2.6</spyMemcached.version>
          <jsr311.version>1.1.1</jsr311.version>
      </properties>
      <build>
          <plugins>
              <plugin>
                  <groupId>org.mortbay.jetty</groupId>
                  <artifactId>jetty-maven-plugin</artifactId>
              </plugin>
          </plugins>
      </build>
      <dependencies>
      </dependencies>
  </project>

Project pom: scala project:

  <?xml version="1.0"?>
  <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
           xmlns="http://maven.apache.org/POM/4.0.0"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <modelVersion>4.0.0</modelVersion>
      <parent>
          <artifactId>mabba-parent</artifactId>
          <groupId>net.amadan.mabba</groupId>
          <version>0.0.1-SNAPSHOT</version>
      </parent>
      <groupId>net.amadan.mabba</groupId>
      <artifactId>mabba.core</artifactId>
      <version>1.0-SNAPSHOT</version>
      <packaging>jar</packaging>
      <name>mabba.core</name>
      <properties>
          <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      </properties>
      <repositories>
          <repository>
              <id>scala-tools.org</id>
              <name>Scala-tools Maven2 Repository</name>
              <url>http://scala-tools.org/repo-releases</url>
          </repository>
      </repositories>
      <pluginRepositories>
          <pluginRepository>
              <id>scala-tools.org</id>
              <name>Scala-tools Maven2 Repository</name>
              <url>http://scala-tools.org/repo-releases</url>
          </pluginRepository>
      </pluginRepositories>
      <build>
          <plugins>
              <plugin>
                  <groupId>org.scala-tools</groupId>
                  <artifactId>maven-scala-plugin</artifactId>
                  <executions>
                      <execution>
                          <goals>
                              <goal>compile</goal>
                              <goal>testCompile</goal>
                          </goals>
                      </execution>
                  </executions>
                  <configuration>
                      <jvmArgs>
                          <jvmArg>-Xms64m</jvmArg>
                          <jvmArg>-Xmx1024m</jvmArg>
                      </jvmArgs>
                  </configuration>
              </plugin>
          </plugins>
      </build>
      <dependencies>
          <dependency>
              <groupId>org.scala-lang</groupId>
              <artifactId>scala-library</artifactId>
              <version>2.9.1</version>
          </dependency>
      </dependencies>
  </project>

Project pom: java, depends on scala pom:

  <?xml version="1.0"?>
  <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
           xmlns="http://maven.apache.org/POM/4.0.0"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <modelVersion>4.0.0</modelVersion>
      <parent>
          <artifactId>mabba-parent</artifactId>
          <groupId>net.amadan.mabba</groupId>
          <version>0.0.1-SNAPSHOT</version>
      </parent>
      <groupId>net.amadan.mabba</groupId>
      <artifactId>mabba.http</artifactId>
      <version>1.0-SNAPSHOT</version>
      <name>mabba.http</name>
      <packaging>war</packaging>
      <build>
      </build>
      <properties>
          <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      </properties>
      <dependencies>
          <dependency>
              <groupId>net.amadan.mabba</groupId>
              <artifactId>mabba.core</artifactId>
              <version>${project.version}</version>
          </dependency>
      </dependencies>
  </project>

Compile and test should now pick up scala and java. You might want to run with -U the first time

  mvn -U compile
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment