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 JDK17
  • Apache Maven (minimum) 3.6.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 -DincludeParent
mvn versions:display-plugin-updates -DincludeParent
mvn versions:display-property-updates -DincludeParent

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 -Dwicket.configuration=DEVELOPMENT -Dwicket.ioc.useByteBuddy=true

#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 -Dwicket.configuration=DEVELOPMENT -Dwicket.ioc.useByteBuddy=true

			

Run OpenMeetings with Embedded Jetty for Development purpose in JDK17

# ANSI console colors and fix Hazelcast warnings for access
export MAVEN_OPTS='-Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n --add-modules java.se --add-exports java.base/jdk.internal.ref=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/sun.nio.ch=ALL-UNNAMED --add-opens java.management/sun.management=ALL-UNNAMED --add-opens jdk.management/com.sun.management.internal=ALL-UNNAMED'

# Just run Webapp, requires other modules to be compiled separated if changed
cd openmeetings-webapp
mvn install -P allModules,quick,mysql jetty:run-exploded -Dwicket.configuration=DEVELOPMENT -Dwicket.ioc.useByteBuddy=true

# OpenMeetings logs for embedded jetty are in
cd openmeetings-webapp
tail -f -n 1000 target/openmeetings.log

			

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 -Dsite.skip=true

			

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.
Privacy policy