Nightly Builds
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
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
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