You can find Nightly Builds of the software at: https://ci-builds.apache.org/job/OpenMeetings/

How to Build a Distribution

To build a binary release of OpenMeetings you need:

  • Oracle JDK11
  • Apache Maven (minimum) 3.5.0
  • Git

Get the source:

git clone https://github.com/apache/openmeetings.git

Run the command:

mvn clean install -P allModules

Run, Develop, Test

To develop Openmeetings you need to import maven project into Eclipse Import OM into Eclipse

Check for known vulnerabilities

mvn org.sonatype.ossindex.maven:ossindex-maven-plugin:audit -f pom.xml

Check for updates

mvn versions:display-dependency-updates
mvn versions:display-plugin-updates
mvn versions:display-property-updates

Check dependencies

mvn org.apache.maven.plugins:maven-dependency-plugin:analyze-only

Tips and Gotchas

Eclipse ANSI colors plugin for colors in console

MAVEN_OPTS='-Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n' mvn clean -P allModules,quick,mysql jetty:run-exploded

#Quick rebuild and run
cd ..; mvn clean install -PallModules,quick,mysql -pl openmeetings-util,openmeetings-core; cd openmeetings-web; MAVEN_OPTS='-Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n' mvn clean -P allModules,quick,mysql jetty:run-exploded

			

In case you would like to develop Openmeetings you need to run "unpacked" build:

mvn clean install -P allModules,unpacked,mysql -DskipTests=true -Dwicket.configuration=DEVELOPMENT

			

After modifications are made you can run "quick" build:

mvn install -P allModules,quick,mysql -pl openmeetings-web,openmeetings-server -Dwicket.configuration=DEVELOPMENT

			

Any number of projects can be specified during build:

mvn install -P allModules,quick,mysql -pl openmeetings-util,openmeetings-db,openmeetings-core,openmeetings-install,openmeetings-service,openmeetings-web,openmeetings-server,openmeetings-webservice -Dwicket.configuration=DEVELOPMENT

			

Update JavaScript and CSS at runtime

You can update Javascript and CSS files and then copy them at runtime. No need to re-run the entire Server build and restart. This can greatly save time when developing:

cd openmeetings-web
# Run NPM install on each of the packages (only required once unless you change dependency):
mvn frontend:npm@main-install frontend:npm@chat-install frontend:npm@settings-install frontend:npm@room-install frontend:npm@wb-install
# Run NPM 
mvn frontend:npm@main frontend:npm@chat frontend:npm@settings frontend:npm@room frontend:npm@wb
# Minify CSS
mvn minify:minify@theme-minify minify:minify@nettest-js
# Copy to destination, in this case running OpenMeetings using the embedded Jetty, see above
export CURRENT_DIR=$(pwd)
rsync -a $CURRENT_DIR/target/generated-sources/js/ $CURRENT_DIR/target/openmeetings-web-7.0.0-SNAPSHOT/WEB-INF/classes/

				

You can also copy paste above into a handy shell script and just run that on demand.

This also allows you to use another editor like WebStorm or IntelliJ for editing the OpenMeetings node npm projects!

Fix Proxy settings

Working behind a proxy: If you are sitting behind a proxy you should add some proxy settings before starting the build process.
git config --global http.proxy http://proxyuser:proxypwd@proxy.server.com:8080
  • change proxyuser to your proxy user
  • change proxypwd to your proxy password
  • change proxy.server.com to the URL of your proxy server
  • change 8080 to the proxy port configured on your proxy server

Apache OpenMeetings, OpenMeetings, Apache, the Apache feather, and the Apache OpenMeetings project logo

are trademarks of the Apache Software Foundation.