mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-24 17:32:48 +00:00
Tidy up of README files on how to build projects [skip ci]
This commit is contained in:
74
README.md
74
README.md
@@ -2,13 +2,6 @@
|
|||||||
|
|
||||||
[](https://travis-ci.com/Alfresco/alfresco-community-repo)
|
[](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.
|
Reference in New Issue
Block a user