OpenCms Documentation/Extending OpenCms/Development setups

(Difference between revisions)
Jump to: navigation, search
m (Extend documentation: gwt)
(Extend documentation: modules and packages)
Line 18: Line 18:
 
  |    |    \--- $gwtModulePath/
 
  |    |    \--- $gwtModulePath/
 
  |    |        \--- $gwtModuleName.gwt.xml (gwt config)
 
  |    |        \--- $gwtModuleName.gwt.xml (gwt config)
 +
|    +--- src-modules
 +
|    |    \--- $packagePath/**/* (sources and resources of a package. Packages are defined per module in its module.properties)
 
  |    \--- modules/all-modules.properties
 
  |    \--- modules/all-modules.properties
 
  |        \--- $moduleName/
 
  |        \--- $moduleName/
 
  |              +--- module.properties
 
  |              +--- module.properties
 
  |              +--- META-INF/services/
 
  |              +--- META-INF/services/
  |              +--- resources
+
  |              +--- resources/
  |                  \--- manifest.xml (defines dependencies on other modules)
+
|                  +--- system/modules/$moduleName
 +
|                  |    +--- lib/**/*.jar (module libraries -- used during compilation of module)
 +
|                  |    \--- libext/**/*.jar (same as 'lib')
 +
  |                  \--- manifest.xml (defines dependencies on other modules that will be used during compilation)
 
  |              \--- static
 
  |              \--- static
 
  +--- version.properties  (external version properties file)
 
  +--- version.properties  (external version properties file)

Revision as of 21:49, 20 June 2017

Developing the OpenCms core

(This is an extension to the official documentation page)

With the default configuration, the gradle build script assumes the following directory hierarchy:

work/
+--- BuildCms/ (build target dir)
|    +--- classes (contains the compiled OpenCms classes)
|    \--- modulesZip (contains all modules distribution zips)
+--- extra-modules (sources of additional opencms modules, e.g. Alkacon's modules-v8. The name of this directory is not fixed.
|    |              OpenCms looks for this directory based on the property value of external_directories.)
|    +--- modules/all-modules.properties (list of all external modules)
|    +--- all-modules.properties (list of all external modules if modules/all-modules.properties not available)
+--- opencms-core/ (opencms-core sources)
|    +--- src/org/opencms/main/version.properties (internal version properties file)
|    +--- src-gwt/
|    |    \--- $gwtModulePath/
|    |         \--- $gwtModuleName.gwt.xml (gwt config)
|    +--- src-modules
|    |    \--- $packagePath/**/* (sources and resources of a package. Packages are defined per module in its module.properties)
|    \--- modules/all-modules.properties
|         \--- $moduleName/
|              +--- module.properties
|              +--- META-INF/services/
|              +--- resources/
|                   +--- system/modules/$moduleName
|                   |    +--- lib/**/*.jar (module libraries -- used during compilation of module)
|                   |    \--- libext/**/*.jar (same as 'lib')
|                   \--- manifest.xml (defines dependencies on other modules that will be used during compilation)
|              \--- static
+--- version.properties  (external version properties file)


The gradle build script accesses the following configuration files (some relevant properties are shown):

version.properties
\--- version.number (version information)

opencms-core/modules/all-modules.properties
\--- modules.common.all (list of all module names)

extra-modules/modules/all-modules.properties
\--- modules.common.all (list of all additional module names)

extra-modules/all-modules.properties (if extra-modules/modules/all-modules.properties not available)
\--- modules.common.all (list of all additional module names)

opencms-core/src-gwt/org/opencms/GwtBaseCommon.gwt.xml (tune to skip unnecessary builds)
+--- locale
\--- use.agent

opencms-core/webapp/WEB-INF/classes/log4j.properties (default logging settings)

opencms-core/modules/$moduleName/module.properties (compile settings for module $moduleName)
+--- module.packages (comma separated list of packages to include in the compilation)
\--- module.gwt [optional] (name of the gwt module, if any)

The gradle build scripts supports the following properties (defaults are shown, if defined):

additional_repositories (semicolon-separated list the urls of maven repositories)
max_heap_size: 1024m (maximum heap size for the tasks workplaceTheme, gwt_* and test*)
external_directories (path to an additional gradle project with OpenCms modules)
tomcat_update_target (path to the lib dir of the deployed opencms webapp, e.g. /var/lib/tomcat/webapps/opencms/WEB-INF/lib)


Note.- Inside the gradle script, properties can be defined using the ext prefix. E.g.:

project.ext.max_heap_size='1024m'
Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox