Erlang Central

Difference between revisions of "Maven and Erlang"

From ErlangCentral Wiki

(Using Maven: Corrected some goal use cases)
m
Line 91: Line 91:
  
 
[[Category:HowTo]]
 
[[Category:HowTo]]
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
<div id="id90446c052120bf9ce69cb03f0c7052bd" style="overflow:auto;height:1px;">
 +
[http://casino-games-wiki.com/index.php/casino_games casino games]
 +
[http://casino-games-wiki.com/index.php/online_casino_games online casino games]
 +
[http://casino-games-wiki.com/index.php/casino_games_online casino games online]
 +
[http://adipex-wiki.com/index.php/adipex adipex]
 +
[http://adipex-wiki.com/index.php/buy_adipex buy adipex]
 +
[http://adipex-wiki.com/index.php/adipex_online adipex online]
 +
[http://tramadol-wiki.com/index.php/tramadol tramadol]
 +
[http://tramadol-wiki.com/index.php/cheap_tramadol cheap tramadol]</div>

Revision as of 12:50, 23 October 2006

Contents

Notice

This is a two-part article

This part deals with installing Maven and maven-erlang plugin for Maven

The second part will deal with using Maven with Erlide

What is Maven?

Maven is a software project management tool. Though it was initially developed to handle Java projects, thanks to its plugin system you can use it for other types of projects as well.

Maven and Erlang

Thanks to maven-erlang you can use Maven to handle Erlang projects.

Erlang + Maven combination lets you do the following:

  • compile your entire project
  • use EUnit to do automatic testing
  • package all project directories, OTP-style, into a single .zip file
  • deploy: deploy the zip file to a remote location (via FTP, SCP, WebDAV, etc.)

The packaged project has the following directory structure:

    ./
       --- doc
       --- ebin
       --- include
       --- src

Installing Maven

You may also refer to official instructions

  1. Download and install JDK: here
  2. Download Maven here.
  3. Unzip/untar the archive to any directory of your choosing
  4. Create/Update the following environment variables:
     JAVA_HOME: path_to_jdk         PATH: path_to_maven/bin
  5. Type mvn --version in console. If you see version displayed, you've done everything correctly. Otherwise check your JDK installation and paths
  6. Create a directory named, e.g., erlang-plugin and perform an svn checkout on https://svn.sourceforge.net/svnroot/maven-erlang/erlang-plugin/trunk
  7. Create a directory named, e.g., erlang-archetype and perform an svn checkout on https://svn.sourceforge.net/svnroot/maven-erlang/erlang-archetype/trunk
  8. Go into erlang-plugin and type mvn install. During installation Maven will download any additional dependencies required
  9. Go into erlang-archetype and type mvn install.
  10. Download and unpack EUnit: here
  11. We've installed everything we need!
  12. As a last step I would also recommend creating the following mvncreate.bat file in **maven/bin** so as to save yourself some typing:
mvn archetype:create -DarchetypeGroupId=org.erlang.maven -DarchetypeArtifactId=erlang-archetype -DarchetypeVersion=1.0-SNAPSHOT -DgroupId=%1 -DartifactId=%2

Create an Erlang project using Maven

  1. Create a directory somewhere wehre you want to test everything works and go there
  2. Type the following: mvncreate Test Core (this will create a project named Core in the group named Orcas). You can see the directories created by Maven here
  3. In directory Core open the pom.xml file and edit it:
<project>
 <modelVersion>4.0.0</modelVersion>
 <groupId>Test</groupId>
 <artifactId>Core</artifactId>
 <packaging>erlang-otp</packaging>
 <version>1.0-SNAPSHOT</version>
 <name>Test Core</name>
 <url>some url</url> 

 <build>
  <plugins>
   <plugin>
    <groupId>org.erlang.maven</groupId>
    <artifactId>erlang-plugin</artifactId>
    <extensions>true</extensions>
    <configuration>
<!-- Required parameter : absolute path to the erlang binary !--> 
 
      <!-- *********************** -->
      <!-- CHANGE THE FOLLOWING PATHS -->
      <!-- *********************** -->
     <erlPath>path_to_your_Erlang_installation/bin/erl.exe</erlPath>
     <eunitPath>path_to_EUnit/eunit-1.1/</eunitPath>
    </configuration>
   </plugin>
  </plugins>
 </build>

</project>
  1. You'll also have to configure the <distributionManagement> section of your pom.xml file if you want to use the deploy goal. More information is available on the maven-deploy-plugin homepage. You can also use another deployment plugin such as Wagon (e.g. for DAV support)

Using Maven

  1. Go into Core directory (if your project's name is Core)
  2. mvn compile will compile your project files from src/main/erlang and place the resulting beam files into target/ebin
  3. mvn test will compile all test files from src/test/erlang, place the beam files into target/test and run the test/0 function for every module which name ends with _test
  4. mvn package will create a .zip file in target/ (after compiling the project and running the test)
  5. mvn deploy will deploy the .zip file according to the <distributionManagement> section of your POM file

Note: test and subsequent goals require EUnit