Skip to content

Building Forge

George Gastaldi edited this page Apr 20, 2016 · 1 revision

If you’re looking for a development guide for Forge, first read this document.

Build instructions

Building Forge completely from sources may require you to build Furnace, Furnace-CDI, Furnace-Simple and then the Forge codebase.

Prerequisites

  • Java 8+

  • Maven 3.1.0+

Building Furnace

Furnace is the core runtime providing the modular classloading environment.

Clone the repo (or your fork):

git clone [email protected]:forge/furnace.git

Use https://github.com/forge/furnace.git instead, if you do not have SSH access.

Build:

mvn clean install

Building Furnace-CDI

Furnace-CDI supports @Inject-based dependency injection of services into Furnace addons through CDI.

Clone the repo:

git clone [email protected]:forge/furnace-cdi.git

Use https://github.com/forge/furnace-cdi.git instead, if you do not have access, or clone the repo and use the fork’s URL.

Build:

cd furnace-cdi/
mvn clean install

Building Furnace-Simple

Furnace-Simple is a Furnace container that provides lifecycle and service registry support for dependent addons.

Clone the repo:

git clone [email protected]:forge/furnace-simple.git

Use https://github.com/forge/furnace-simple.git instead, if you do not have SSH access.

Build:

cd furnace-simple/
mvn clean install

Building Forge

Clone the repo (or your fork):

git clone [email protected]:forge/core.git

Use https://github.com/forge/core.git instead, if you do not have access, or clone the repo and use the fork’s URL.

Build:

mvn clean install

The Forge distribution will be present in the dist/target directory. Unzip and extract to get started:

unzip dist/target/forge-distribution-<release_version>.zip -d ~
export FORGE_HOME=~/forge-distribution-<release_version>
export PATH=$FORGE_HOME/bin:$PATH
forge

Building the Forge JBoss Tools plugin

The Forge JBoss Tools plugin will allow you to run Forge inside Eclipse. Build this only when you need to run Forge in Eclipse. The Forge-Core distribution is sufficient for the CLI mode.

Clone the repo (or your fork):

git clone [email protected]:jbosstools/jbosstools-forge.git

Build:

mvn clean verify -DskipTests

The Forge artifacts from your local .m2 repository would be included in the JBoss Tools plugins for Forge. You can install them in an Eclipse Kepler installation, by adding $JBOSSTOOLS_FORGE_DIR/site/target/forge.site-1.2.0-SNAPSHOT.zip as an update site.

Note, you may need to run git clean -fdx to clean the target directories of older snapshot artifacts.

To use the Maven artifacts from the JBoss Nexus repository instead of your local .m2 repository, run:

mvn -U clean verify

Run:

This section applies when you do not wish to build and install the Eclipse plugin in an installation, but just work on the Forge 2 sources and run it as an Eclipse application. This useful when you’re working on the Forge 2 sources instead of your own addons.

Import the following projects from the plugins/ module into your Eclipse workspace:

org.jboss.tools.aesh.core
org.jboss.tools.aesh.runtime
org.jboss.tools.aesh.ui
org.jboss.tools.forge.core
org.jboss.tools.forge.core.ext
org.jboss.tools.forge.m2e
org.jboss.tools.forge.runtime
org.jboss.tools.forge.ui
org.jboss.tools.forge.ui.ext
org.jboss.tools.forge.ui.notifications
org.jboss.tools.forge2.runtime

Right-click the org.jboss.tools.forge.ui.ext project, and choose Run As → Eclipse Application.

Important
If you are unable to run the project as an Eclipse application, the reason is that you don’t have the Tycho M2 Provider installed. If that’s the case, install it via this update site: http://repository.tesla.io:8081/nexus/content/sites/m2e.extras/m2eclipse-tycho/0.7.0/N/0.7.0.201309291400/

Right click the org.jboss.tools.forge.ui.ext project, choose Run As → Run Configurations.. and set the VM arguments to: -Xmx1024m -XX:MaxPermSize=256m