The easiest way to start a Magnolia Forge project is to clone this repository. The POM file includes a reference to Magnolia's Nexus repository, so you can easily start working with community dependencies in your project.
Once you're happy with what you have and would like to share it with the community, you'll need to register a new Forge project, and provide your GitHub handle.
You will then be invited to join the Magnolia community GitHub organization, and able to create a repository, to which you'll push your module. You can then add external developers to that particular repository.
To encourage high quality, we recommend you have automatic builds and keep the 'build status' badge.
Travis can build your module anytime you push and is pretty easy to setup. Once your Magnolia community repository has been created, and assuming you are logged into GitHub, simply go to travis-ci.com and follow the step-by-step guide.
.com
website rather than .org
- Travis is currently going through a
migration and using .org
may lead to issues.
You're free to deploy wherever you wish. The following blog post guides you
through the steps you could take to freely deploy to
packagecloud. You could also have JitPack build the
module on your machine and transparently upload it as an artifact with the
com.github.<YOUR_USERNAME>
groupId
.
If you would like to deploy to Magnolia's Nexus, you will need to do a manual release. Please follow the steps below.
Either way, please include release coordinates in your README so that your module can be used by others. The README blueprint provides you with a template that's easy to adapt.
If you ever plan to manually push a release to our Nexus, or if you simply would like to transparently work with our dependencies without cluttering your POM files, then please read how to set Maven up.
Once that is done, you can take the following snippet out from your POM:
<repository>
<id>magnolia.public</id>
<url>https://nexus.magnolia-cms.com/content/groups/public</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
Assuming your local Maven is setup, simply add the following snippet to your POM file:
<distributionManagement>
<repository>
<id>magnolia.forge.releases</id>
<url>https://nexus.magnolia-cms.com/content/repositories/magnolia.forge.releases</url>
</repository>
<snapshotRepository>
<id>magnolia.forge.snapshots</id>
<url>https://nexus.magnolia-cms.com/content/repositories/magnolia.forge.snapshots</url>
</snapshotRepository>
<site>
<id>magnolia.forge.sites</id>
<url>dav:https://nexus.magnolia-cms.com/content/sites/magnolia.forge.sites/${artifactId}/${project.version}</url>
</site>
</distributionManagement>
Whether you need help, would like to share your work, or simply get in touch with the community, you can join the Magnolia User Google Group.