The AEM Forms Core Components project serves as accelerator to get started with projects using AEM Forms. The project contains re-useable Forms core components which are server-side rendered AEM components for dynamic experiences / data.
This project is intended to be used in conjunction with the AEM Sites Core Components. AEM Forms Core Components use the AEM Sites Core Components as a foundation where possible and extending them.
See AEM Sites Core Components for usage and configuration instructions of the AEM Forms Core Components.
The latest version of the AEM Forms Core Components, require the below minimum system requirements:
Forms Core Components | WCM Core Components | AEM Forms as a cloud service | Java | Maven |
---|---|---|---|---|
1.0.4 | 2.18.0 | Continual | 8, 11 | 3.3.9+ |
For a list of requirements for previous versions, see Historical System Requirements.
This project relies on the AEM Sites Core Components. They are typically installed as part of AEM. If you install AEM without sample content option you have to deploy them manually before using the AEM Forms Core Components. See the System Requirements above for version requirements.
- Clone this repository.
- Run a
mvn clean install
in the root folder to install the artifacts to your local Maven repository. - Switch to the
all
project and run amvn clean install content-package:install
.
If you want to build all the modules yourself and get all the latest (yet) unreleased changes, just build and install all the modules with the following command at the root of the repository:
mvn clean install -PautoInstallAll
This installs everything by default to localhost:4502
without any context path. You can also configure the install location with the following maven properties:
aem.host
: the name of the AEM instanceaem.port
: the port number of the AEM instanceaem.contextPath
: the context path of your AEM instance (if not/
)
This project relies on the AEM 6.4.4 cq-quickstart
UberJar and AEM Forms SDK API. This is publicly available on https://repo.adobe.com
For more details about the UberJar please head over to the How to Build AEM Projects using Apache Maven documentation page.
The released version of the AEM Forms Core Components are available on the maven central repository. To include the AEM Forms Core Components package into your own project maven build you can add the dependency
<dependency>
<groupId>com.adobe.aem</groupId>
<artifactId>core-forms-components-all</artifactId>
<type>zip</type>
<version>x.y.z</version>
</dependency>
and sub package section
<subPackage>
<groupId>com.adobe.aem</groupId>
<artifactId>core-forms-components-all</artifactId>
<filter>true</filter>
</subPackage>
to the content-package-maven-plugin
.
In order to use components under pre-release:
- Enable the pre-release channel. Instructions at https://experienceleague.adobe.com/docs/experience-manager-cloud-service/content/release-notes/prerelease.html?lang=en
- Replace
core-forms-components-*
version with the desired pre-release version (e.g1.0.4-PRERELEASE-20211223
) in your Cloud Manager / AEM Archetype project. This can be done by updating<core.forms.components.version>x.y.z</core.forms.components.version>
in the top level pom.xml of archetype project.
Contents in the pre-release are contained in the pre-release
branch.
You can find the code formatting rules in the eclipse-formatter.xml
file. The code formatting is automatically checked for each build. To automatically format your code, please run:
mvn clean install -Pformat-code
Releases of this project are triggered by manually running mvn release:prepare release:clean
on the master
branch on the root folder of this repository. Once you choose the release and the next snapshot versions, this commits the change along with a release git tag like for example core-forms-components-reactor-x.y.z
. Note that the commits are not automatically pushed to the git repository, so you have some time to check your changes and then manually push them. The push then triggers a dedicated CircleCI
build that performs the deployment of the tagged artifact to Maven Central.
Important: this project does Maven reactor releases, do not trigger releases from sub modules!
Note: in case it is needed to update the version of a java bundle because of API changes and semantic versioning, one can easily update the parent POM version and all the POMs referencing the parent POM version by running the following command in the PARENT project folder: mvn versions:set -DnewVersion=x.y.z-SNAPSHOT
. This will ensure all projects have the same version.
Contributions are welcomed! Read the Contributing Guide for more information.
This project is licensed under the Apache V2 License. See LICENSE for more information.