Tidy up of README files on how to build projects [skip ci]

This commit is contained in:
alandavis
2021-10-29 13:53:28 +01:00
parent 7daef9ee21
commit 68cde24419

View File

@@ -2,13 +2,6 @@
[![Build Status](https://travis-ci.com/Alfresco/alfresco-community-repo.svg?branch=master)](https://travis-ci.com/Alfresco/alfresco-community-repo) [![Build Status](https://travis-ci.com/Alfresco/alfresco-community-repo.svg?branch=master)](https://travis-ci.com/Alfresco/alfresco-community-repo)
This project contains the bulk of the [Alfresco Content Services Repository](https://community.alfresco.com/docs/DOC-6385-project-overview-repository) code.
To make the development process simpler, it brings together code historically in `alfresco-core`,
`alfresco-data-madel`, `alfresco-repository`, `alfresco-remote-api` and repository specific
tests and war file creation from `acs-community-packaging`. They exist as sub projects within the Maven Reactor and still
create the same artifacts.
#### Alfresco Core #### Alfresco Core
Alfresco Core is a library packaged as a jar file which contains the following: Alfresco Core is a library packaged as a jar file which contains the following:
@@ -16,8 +9,6 @@ Alfresco Core is a library packaged as a jar file which contains the following:
* Canned queries interface and supporting classes * Canned queries interface and supporting classes
* Generic encryption supporting classes * Generic encryption supporting classes
Version 7 of the library uses Spring 5, Quartz 2.3 and does not have Hibernate dependency.
#### Alfresco Data Model #### Alfresco Data Model
Data model is a library packaged as a jar file which contains the following: Data model is a library packaged as a jar file which contains the following:
* Dictionary, Repository and Search Services interfaces * Dictionary, Repository and Search Services interfaces
@@ -31,14 +22,6 @@ Repository is a library packaged as a jar file which contains the following:
* Various Service implementations * Various Service implementations
* Utility classes * Utility classes
Tests are combined into test classes split by test type or Spring application context used in the test, see classes
in _src/test/java/org/alfresco_. All of these classes as well as individual tests can be run by specifying the test
class name and a set of DB connection properties. Check the travis.yml file for docker images that should be started
to provide a suitable test environment. For example:
~~~
mvn clean test -Dtest=SomeRepoTest -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql:alfresco -Ddb.username=alfresco -Ddb.password=alfresco
~~~
#### Alfresco Remote API #### Alfresco Remote API
Remote API is a library packaged as a jar file which contains the following: Remote API is a library packaged as a jar file which contains the following:
@@ -46,13 +29,10 @@ Remote API is a library packaged as a jar file which contains the following:
* WebScript implementations including [V1 REST APIs](https://community.alfresco.com/community/ecm/blog/2017/05/02/v1-rest-api-10-things-you-should-know) * WebScript implementations including [V1 REST APIs](https://community.alfresco.com/community/ecm/blog/2017/05/02/v1-rest-api-10-things-you-should-know)
* [OpenCMIS](https://chemistry.apache.org/java/opencmis.html) implementations * [OpenCMIS](https://chemistry.apache.org/java/opencmis.html) implementations
Like the `alfresco-repository` tests are combined in test classes split by test type or Spring application context used
in the test.
#### Artifacts #### Artifacts
The artifacts can be obtained by: The artifacts can be obtained by:
* downloading from [Alfresco maven repository](https://artifacts.alfresco.com/nexus/content/groups/public) * downloading from [Alfresco maven repository](https://artifacts.alfresco.com/nexus/content/groups/public)
* getting as Maven dependency by adding the dependency to your pom file: * as Maven dependency by adding the dependency to your pom file:
~~~ ~~~
<dependency> <dependency>
<groupId>org.alfresco</groupId> <groupId>org.alfresco</groupId>
@@ -94,40 +74,24 @@ and Alfresco maven repository:
~~~ ~~~
The SNAPSHOT versions of the artifact are not published. The SNAPSHOT versions of the artifact are not published.
All current source versions are held in github. Historic versions can be found in [Alfresco SVN](https://svn.alfresco.com/repos/alfresco-open-mirror/services/alfresco-core/) ## Setting up and building your development environment
See the [Development Tomcat Environment](https://github.com/Alfresco/acs-community-packaging/tree/master/dev/README.md)
### Contributing guide page which will show you how to try out your repository changes in a local tomcat instance.
Please use [this guide](CONTRIBUTING.md) to make a contribution to the project. If you wish to use Docker images, take a look at the aliases ending in `D` and the docker-compose files in this
project's test modules.
## Setting up your development environment
Although it is possible to work on individual github projects, we recommend working on the `alfresco-community-repo`
and `acs-community-packaging` in a single Intellij IDEA project. They depend on each other and typically you will
want to make changes to both of them if you are changing the repository code.
~~~
mkdir work
cd work
git clone git@github.com:Alfresco/alfresco-community-repo.git
git clone git@github.com:Alfresco/acs-community-packaging.git
~~~
If you wish to build these projects from the command line, use the following commands.
~~~
cd alfresco-community-repo
mvn clean install -Pbuild-docker-images -DskipTests=true -Dversion.edition=Community
cd ..
cd acs-community-packaging
mvn clean install -Pbuild-docker-images -Dmaven.javadoc.skip=true
cd ..
~~~
In Intellij IDEA, create a new project using the `work` directory as the source.
* File > New Project from Existing Sources > .../work > Maven
## Branches ## Branches
As multiple projects have been combined, branch names use the ACS version they are targeting. This project has a branch for each ACS release. For example the code in ACS 6.2.1 is a
For example the code used to create the repository in ACS 6.2.1 is a branch called `releases/6.2.1`. branch called `releases/6.2.2`. In addition to the original 6.2.2 release it will also contain Hot Fixes
added later. The latest unreleased code is on the `master` branch. There are also `.N` branches, such as
`releases/7.1.N` on which we gather unreleased fixes for future service pack releases. They do not indicate
that one is planned.
The actual version number of the **repository artifacts** created by `alfresco-community-repo` are however different. For historic reasons the version of artifacts created on each branch do not match the ACS version.
For example `release/6.2.1` artifacts are `7.183.x`. This adds some complexity, but ensures that For example artifact in ACS 7.2.0 will be `14.<something>`.
version numbers do not go backwards in existing releases. It also provides some level of
independence between the repository and other ACS components. The enterprise projects which extend the `alfresco-community-repo` use the same branch names and leading
artifact version number.
### Contributing guide
Please use [this guide](CONTRIBUTING.md) to make a contribution to the project.