Building Archiva
To build the very latest code available...
- Check out the source code as described on the Source Repository page.
- You may setup a suitable ~/.m2/settings.xml to add the needed repositories.
- In the 'parent' directory, execute
mvn clean install
to build the parent pom. (only needed if we depend on a new parent) - In the 'archiva' directory, execute
mvn clean install
to build the Archiva modules and distribution.
After the build completes, you can find the Archiva distribution in archiva-jetty/target
and the Archiva webapp in archiva-modules/archiva-web/archiva-webapp/target
Usually, it's that simple. :) Occasionally, Archiva may depend on a snapshot of another project such as Redback, and you may need to build that first, or configure a snapshot repository. If you're having trouble building Archiva, ask on the Development mailing list and we'll point you in the right direction.
Merging Github Pull requests
When somebody creates a pull request for archiva on github an email is sent to the developer list.
First review the changes and check for style and impact of the changes. And check the build on the jenkins server for this pull request (archiva-master-build-pr-builder).
We have moved to gitbox, so merging the PR should be done on the github web site by using the PR merge features.
Documentation
The version-specific documentation for the latest version of Archiva can be found in archiva/archiva-docs
, and the top-level Archiva website --including the page you're reading now -- is in the site
directory.
To work on the documentation, execute mvn site:run
in one of these directories, and then visit http://localhost:8080 to view pages as you edit them. When you're done, submit a patch in the issue tracker.
git clone
git clone git://github.com/apache/archiva.git or trough https git clone https://github.com/apache/archiva.git
Running Javascript webapp with jetty-maven-plugin
You can use jetty-maven-plugin to run the webapp without installing the war in a container. With maven3 in the top directory :
mvn jetty:run -pl :archiva-webapp -am # use mvnDebug if you want to attach a debugger or sh ./jetty.sh # use sh ./jetty-debug.sh if you want to attach a debugger
Hit your browser: http://localhost:9091/archiva/index.html
Running the selenium tests (Web UI tests) locally
The selenium tests use docker containers for the selenium and browser installation. To run the tests locally you should have docker installed on your developer machine. The docker container can be built locally or pulled from the apachearchiva Dockerhub repository. To start the docker container, run the following script:
./src/ci/scripts/container_webtest.sh start
The UI tests can be run with:
mvn clean install -DmaxWaitTimeInMs=2000 -DseleniumRemote=true -Pci-server -Pit-js -Pchrome -pl :archiva-webapp-test
Maven settings.xml
You should setup the following repositories in your settings.xml to be able to resolve the dependencies. Sometimes we need to have certain snapshot versions for plugins, so the apache snapshot repository is added.
<profiles> <profile> <activation> <activeByDefault>true</activeByDefault> </activation> <repositories> <repository> <id>central</id> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> <url>https://repo1.maven.org/maven2</url> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>central</id> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> <url>https://repo1.maven.org/maven2</url> </pluginRepository> <pluginRepository> <id>apache-snapshot</id> <releases> <enabled>false</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> <url>https://repository.apache.org/content/groups/snapshots</url> </pluginRepository> </pluginRepositories> </profile> </profiles>