2011-04-27 09:34:11 +12:00
|
|
|
|
|
|
|
|
.. highlightlang:: none
|
|
|
|
|
|
|
|
|
|
.. _building-akka:
|
|
|
|
|
|
|
|
|
|
###############
|
|
|
|
|
Building Akka
|
|
|
|
|
###############
|
2011-04-09 19:55:46 -06:00
|
|
|
|
|
|
|
|
This page describes how to build and run Akka from the latest source code.
|
|
|
|
|
|
2011-04-20 14:09:48 +12:00
|
|
|
.. contents:: :local:
|
|
|
|
|
|
|
|
|
|
|
2011-04-09 19:55:46 -06:00
|
|
|
Get the source code
|
2011-04-27 09:34:11 +12:00
|
|
|
===================
|
|
|
|
|
|
|
|
|
|
Akka uses `Git`_ and is hosted at `Github`_.
|
2011-04-09 19:55:46 -06:00
|
|
|
|
2011-04-27 09:34:11 +12:00
|
|
|
.. _Git: http://git-scm.com
|
|
|
|
|
.. _Github: http://github.com
|
2011-04-09 19:55:46 -06:00
|
|
|
|
2011-04-20 14:09:48 +12:00
|
|
|
You first need Git installed on your machine. You can then clone the source
|
|
|
|
|
repositories:
|
2011-04-09 19:55:46 -06:00
|
|
|
|
2011-04-27 09:34:11 +12:00
|
|
|
- Akka repository from http://github.com/jboner/akka
|
|
|
|
|
- Akka Modules repository from http://github.com/jboner/akka-modules
|
2011-04-09 19:55:46 -06:00
|
|
|
|
2011-04-20 14:09:48 +12:00
|
|
|
For example::
|
2011-04-09 19:55:46 -06:00
|
|
|
|
2011-04-20 14:09:48 +12:00
|
|
|
git clone git://github.com/jboner/akka.git
|
|
|
|
|
git clone git://github.com/jboner/akka-modules.git
|
2011-04-09 19:55:46 -06:00
|
|
|
|
2011-04-20 14:09:48 +12:00
|
|
|
If you have already cloned the repositories previously then you can update the
|
|
|
|
|
code with ``git pull``::
|
2011-04-09 19:55:46 -06:00
|
|
|
|
2011-04-20 14:09:48 +12:00
|
|
|
git pull origin master
|
2011-04-09 19:55:46 -06:00
|
|
|
|
|
|
|
|
|
|
|
|
|
SBT - Simple Build Tool
|
2011-04-27 09:34:11 +12:00
|
|
|
=======================
|
2011-04-09 19:55:46 -06:00
|
|
|
|
2011-04-27 09:34:11 +12:00
|
|
|
Akka is using the excellent `SBT`_ build system. So the first thing you have to
|
|
|
|
|
do is to download and install SBT. You can read more about how to do that in the
|
|
|
|
|
`SBT setup`_ documentation.
|
|
|
|
|
|
|
|
|
|
.. _SBT: http://code.google.com/p/simple-build-tool
|
|
|
|
|
.. _SBT setup: http://code.google.com/p/simple-build-tool/wiki/Setup
|
2011-04-09 19:55:46 -06:00
|
|
|
|
2011-04-20 14:09:48 +12:00
|
|
|
The SBT commands that you'll need to build Akka are all included below. If you
|
|
|
|
|
want to find out more about SBT and using it for your own projects do read the
|
2011-04-27 09:34:11 +12:00
|
|
|
`SBT documentation`_.
|
|
|
|
|
|
|
|
|
|
.. _SBT documentation: http://code.google.com/p/simple-build-tool/wiki/RunningSbt
|
2011-04-09 19:55:46 -06:00
|
|
|
|
2011-04-20 14:09:48 +12:00
|
|
|
The Akka SBT build file is ``project/build/AkkaProject.scala`` with some
|
|
|
|
|
properties defined in ``project/build.properties``.
|
2011-04-09 19:55:46 -06:00
|
|
|
|
|
|
|
|
|
|
|
|
|
Building Akka
|
2011-04-27 09:34:11 +12:00
|
|
|
=============
|
2011-04-09 19:55:46 -06:00
|
|
|
|
2011-04-20 14:09:48 +12:00
|
|
|
First make sure that you are in the akka code directory::
|
2011-04-09 19:55:46 -06:00
|
|
|
|
2011-04-20 14:09:48 +12:00
|
|
|
cd akka
|
2011-04-09 19:55:46 -06:00
|
|
|
|
|
|
|
|
|
|
|
|
|
Fetching dependencies
|
2011-04-27 09:34:11 +12:00
|
|
|
---------------------
|
2011-04-09 19:55:46 -06:00
|
|
|
|
2011-04-20 14:09:48 +12:00
|
|
|
SBT does not fetch dependencies automatically. You need to manually do this with
|
|
|
|
|
the ``update`` command::
|
2011-04-09 19:55:46 -06:00
|
|
|
|
2011-04-20 14:09:48 +12:00
|
|
|
sbt update
|
2011-04-09 19:55:46 -06:00
|
|
|
|
2011-04-20 14:09:48 +12:00
|
|
|
Once finished, all the dependencies for Akka will be in the ``lib_managed``
|
|
|
|
|
directory under each module: akka-actor, akka-stm, and so on.
|
2011-04-09 19:55:46 -06:00
|
|
|
|
2011-04-20 14:09:48 +12:00
|
|
|
*Note: you only need to run update the first time you are building the code,
|
|
|
|
|
or when the dependencies have changed.*
|
2011-04-09 19:55:46 -06:00
|
|
|
|
|
|
|
|
|
|
|
|
|
Building
|
2011-04-27 09:34:11 +12:00
|
|
|
--------
|
2011-04-09 19:55:46 -06:00
|
|
|
|
2011-04-20 14:09:48 +12:00
|
|
|
To compile all the Akka core modules use the ``compile`` command::
|
2011-04-09 19:55:46 -06:00
|
|
|
|
2011-04-20 14:09:48 +12:00
|
|
|
sbt compile
|
2011-04-09 19:55:46 -06:00
|
|
|
|
2011-04-20 14:09:48 +12:00
|
|
|
You can run all tests with the ``test`` command::
|
2011-04-09 19:55:46 -06:00
|
|
|
|
2011-04-20 14:09:48 +12:00
|
|
|
sbt test
|
2011-04-09 19:55:46 -06:00
|
|
|
|
2011-04-20 14:09:48 +12:00
|
|
|
If compiling and testing are successful then you have everything working for the
|
|
|
|
|
latest Akka development version.
|
2011-04-09 19:55:46 -06:00
|
|
|
|
|
|
|
|
|
|
|
|
|
Publish to local Ivy repository
|
2011-04-27 09:34:11 +12:00
|
|
|
-------------------------------
|
2011-04-09 19:55:46 -06:00
|
|
|
|
2011-04-20 14:09:48 +12:00
|
|
|
If you want to deploy the artifacts to your local Ivy repository (for example,
|
|
|
|
|
to use from an SBT project) use the ``publish-local`` command::
|
2011-04-09 19:55:46 -06:00
|
|
|
|
2011-04-20 14:09:48 +12:00
|
|
|
sbt publish-local
|
2011-04-09 19:55:46 -06:00
|
|
|
|
|
|
|
|
|
|
|
|
|
Publish to local Maven repository
|
2011-04-27 09:34:11 +12:00
|
|
|
---------------------------------
|
2011-04-09 19:55:46 -06:00
|
|
|
|
2011-04-20 14:09:48 +12:00
|
|
|
If you want to deploy the artifacts to your local Maven repository use::
|
2011-04-09 19:55:46 -06:00
|
|
|
|
2011-04-20 14:09:48 +12:00
|
|
|
sbt publish-local publish
|
2011-04-09 19:55:46 -06:00
|
|
|
|
|
|
|
|
|
|
|
|
|
SBT interactive mode
|
2011-04-27 09:34:11 +12:00
|
|
|
--------------------
|
2011-04-09 19:55:46 -06:00
|
|
|
|
2011-04-20 14:09:48 +12:00
|
|
|
Note that in the examples above we are calling ``sbt compile`` and ``sbt test``
|
|
|
|
|
and so on. SBT also has an interactive mode. If you just run ``sbt`` you enter
|
|
|
|
|
the interactive SBT prompt and can enter the commands directly. This saves
|
|
|
|
|
starting up a new JVM instance for each command and can be much faster and more
|
|
|
|
|
convenient.
|
2011-04-09 19:55:46 -06:00
|
|
|
|
2011-04-27 09:34:11 +12:00
|
|
|
For example, building Akka as above is more commonly done like this::
|
2011-04-20 14:09:48 +12:00
|
|
|
|
|
|
|
|
% sbt
|
|
|
|
|
[info] Building project akka 1.1-SNAPSHOT against Scala 2.9.0.RC1
|
|
|
|
|
[info] using AkkaParentProject with sbt 0.7.6.RC0 and Scala 2.7.7
|
|
|
|
|
> update
|
|
|
|
|
[info]
|
|
|
|
|
[info] == akka-actor / update ==
|
|
|
|
|
...
|
|
|
|
|
[success] Successful.
|
|
|
|
|
[info]
|
|
|
|
|
[info] Total time ...
|
|
|
|
|
> compile
|
|
|
|
|
...
|
|
|
|
|
> test
|
|
|
|
|
...
|
|
|
|
|
|
2011-04-09 19:55:46 -06:00
|
|
|
|
|
|
|
|
SBT batch mode
|
2011-04-27 09:34:11 +12:00
|
|
|
--------------
|
2011-04-09 19:55:46 -06:00
|
|
|
|
2011-04-20 14:09:48 +12:00
|
|
|
It's also possible to combine commands in a single call. For example, updating,
|
|
|
|
|
testing, and publishing Akka to the local Ivy repository can be done with::
|
2011-04-09 19:55:46 -06:00
|
|
|
|
2011-04-20 14:09:48 +12:00
|
|
|
sbt update test publish-local
|
2011-04-09 19:55:46 -06:00
|
|
|
|
|
|
|
|
|
|
|
|
|
Building Akka Modules
|
2011-04-27 09:34:11 +12:00
|
|
|
=====================
|
2011-04-09 19:55:46 -06:00
|
|
|
|
2011-04-27 15:50:57 +12:00
|
|
|
See the Akka Modules documentation.
|
2011-04-09 19:55:46 -06:00
|
|
|
|
|
|
|
|
|
|
|
|
|
Dependencies
|
2011-04-27 09:34:11 +12:00
|
|
|
============
|
2011-04-09 19:55:46 -06:00
|
|
|
|
2011-04-27 09:34:11 +12:00
|
|
|
If you are managing dependencies by hand you can find the dependencies for each
|
|
|
|
|
module by looking in the ``lib_managed`` directories. For example, this will
|
|
|
|
|
list all compile dependencies (providing you have the source code and have run
|
|
|
|
|
``sbt update``)::
|
2011-04-09 19:55:46 -06:00
|
|
|
|
2011-04-20 14:09:48 +12:00
|
|
|
cd akka
|
|
|
|
|
ls -1 */lib_managed/compile
|
2011-04-09 19:55:46 -06:00
|
|
|
|
2011-04-27 09:34:11 +12:00
|
|
|
You can also look at the Ivy dependency resolution information that is created
|
|
|
|
|
on ``sbt update`` and found in ``~/.ivy2/cache``. For example, the
|
|
|
|
|
``.ivy2/cache/se.scalablesolutions.akka-akka-remote-compile.xml`` file contains
|
|
|
|
|
the resolution information for the akka-remote module compile dependencies. If
|
|
|
|
|
you open this file in a web browser you will get an easy to navigate view of
|
|
|
|
|
dependencies.
|