# Automatic Builds

Since `.melk` files result in code being generated, you may not want to check that code into your repository. Instead, the code should probably be generated as part of your automatic build. Indeed, the ELK metadata language compiler is available through a Maven repository. You can find the repository URLs in our Downloads section. Note that we provide a separate repository for nightly builds and for each release.

To use the compiler, add the following to your `pom.xml`:

    <pluginRepositories>
      <!-- Xtext is required to invoke our compiler. -->
      <pluginRepository>
        <id>xtend</id>
        <name>Xtend Maven Repository</name>
        <layout>default</layout>
        <url>http://build.eclipse.org/common/xtend/maven</url>
      </pluginRepository>

      <!-- This is where our compiler is. -->
      <pluginRepository>
        <id>eclipse-elk-meta</id>
        <name>ELK Meta Data Language Compiler Maven Repository</name>
        <url>http://the.repository.url.you.want/see.download.page.for.details</url>
      </pluginRepository>
    </pluginRepositories>

    <build>
      <plugins>
        <!-- Configure the Xtext plugin to invoke our compiler. -->
        <plugin>
          <groupId>org.eclipse.xtext</groupId>
          <artifactId>xtext-maven-plugin</artifactId>
          <version>2.7.2</version>
          <executions>
            <execution>
              <goals>
                <goal>generate</goal>
              </goals>
            </execution>
          </executions>
          <configuration>
            <languages>
              <language>
                <setup>org.eclipse.elk.core.meta.MetaDataStandaloneSetup</setup>
                <outputConfigurations>
                  <outputConfiguration>
                    <outputDirectory>${basedir}/src-gen/</outputDirectory>
                  </outputConfiguration>
                </outputConfigurations>
              </language>
            </languages>
          </configuration>
          <dependencies>
            <dependency>
              <groupId>org.eclipse.elk</groupId>
              <artifactId>org.eclipse.elk.graph</artifactId>
              <version>THE_VERSION_YOU_WANT-SNAPSHOT</version>
            </dependency>
            <dependency>
              <groupId>org.eclipse.elk</groupId>
              <artifactId>org.eclipse.elk.core.meta</artifactId>
              <version>THE_VERSION_YOU_WANT-SNAPSHOT</version>
            </dependency>
          </dependencies>
        </plugin>
      </plugins>
    </build>

- Tool Developers
- Graph Data Structure
- Coordinate System
- Layout Options
- Spacing Options
- JSON Format
- ELK Text Format
- Using Algorithms Directly
- Using Plain Java Layout
- Using Eclipse Layout
- Connecting to ELK
- Advanced Configuration
- Layout View Support
- Dependency Injection
- Algorithm Developers
- Getting Eclipse Ready
- Creating a New Project
- ELK Metadata Language
- Automatic Builds
- Algorithm Implementation
- Structuring Algorithms
- Algorithm Debugging
- Random Graph Generation
- Unit Tests
- ELK Contributors
- Development Setup
- Development Workflow
- Installing With Oomph
- Building ELK