A software component catalogue application.
SW360 is a server with a REST interface and a Liferay CE portal application to maintain your projects / products and the software components within.
It can manage SPDX files for maintaining the license conditions and maintain license information.
It is comprised of one frontend (portal) part, backend (services) part and additionally a REST API:
- Frontend: Liferay-CE-(Tomcat-)based portal application using portlets.
- Backend: Tomcat-based thrift services for being called by different applications.
- Database: we store software components and metadata about them in CouchDB.
- Rest: this REST API provides access to project resources for external integration.
The reference platform is the Ubuntu server 22.04 (which is an LTS version).
This is a multi module maven file. please consider that we have the following modules:
- frontend: For portlets, themes and layouts, the liferay part.
- backend: For the thrift based services.
- libraries: For general stuff that is reused among the above, for example, couchdb access.
- scripts: Auxiliary scripts to help build, deploy and config system
- rest: For the REST API which contains an authorization and resource server.
If you run in any issues with documentation or software, please be kind and report to our Github issues area.
Is recommended using the docker based setup, described here.
If you intend to install in a bare metal machine or use in your own virtualizaed system, bare metal instructions are provided here.
If you intend to develop over SW360, few steps are needed as equal you need have base requirements
- Base build requirements
- Java 11
- Maven 3.8.7
- pre-commit
- thrift 0.16.0 runtime
- Python environment ( to pre-commit ) - SW360 use Eclipse formatting rules through Spotless maven plugin
If you can't install thrift 0.16 runtime, you will need the following requirements:
- C++ dev environment
- cmake Then run the current build script:
./scripts/install-thrift.sh
Step 1: Prepare source code
git clone https://github.com/eclipse/sw360.git
cd sw360
pip install pre-commit
pre-commit install
Step 2: Build the code (without tests and docs)
mvn package -P deploy \
-Dhelp-docs=false \
-DskipTests \
-Djars.deploy.dir=deploy \
-Drest.deploy.dir=webapps \
-Dliferay.deploy.dir=webapps \
-Dbackend.deploy.dir=webapps
If you want run the the tests, we need start a local couchdb server and Docker is required:
Step 3:
pip install mkdocs-material
./scripts/startCouchdbForTests.sh
mvn package -P deploy \
-Djars.deploy.dir=deploy \
-Drest.deploy.dir=webapps \
-Dliferay.deploy.dir=webapps \
-Dbackend.deploy.dir=webapps
To check your code linting without commit:
mvn spotless:check
Please refer to SW360 main documentation website for more details.
SPDX-License-Identifier: EPL-2.0
This program and the accompanying materials are made available under the terms of the Eclipse Public License 2.0 which is available at https://www.eclipse.org/legal/epl-2.0/