AGA project development


The following resources are available on the developers zone:

  • Project management
    • Redmine is used to host the wiki, handle bug reporting and the product backlog
  • Source Code Management
    • Gitolite - holds the source code of the SDK, including simulator and reference applications
  • Build tools and dependency management
    • Gradle is used
  • Continous integration
    • For coninuous build, test and reporting we use Jenkins
  • Repo
    • There is no installed artifact repository manager, but we publish the artefacts that are built from Jenkins

Source Code Management


Gitolite/Git Administration


Revision management is controlled through Gitolite/Git and access is controlled at using public keys.

To add a new person/role:

git clone git@developer.lindholmen.se:gitolite-admin.git

Make the following changes:

  • Add the public key to the directory keydir
  • In the conf directory, edit gitolite.conf

Current Repositories


Current repos available for cloning:

git clone git@developer.lindholmen.se:sdp.git
git clone git@developer.lindholmen.se:vil.git
git clone git@developer.lindholmen.se:automotive-api.git

Build tools


The build tool being used is Gradle http://www.gradle.org and the build file is build.gradle.

To see the different tasks, type gradle tasks once the tools is installed and in your path.

Example usage:

gradle build
gradle javadoc
 

Example usage


To setup the project for your IDE:

gradle eclipse
or
gradle idea

To clean the project from the build(s):

gradle clean
To execute a normal build:
gradle build

To publish artifacts locally (not applicable to all projects):

gradle publishToMavenLocal

(the artifcats are available in build/libs)

The folder build comprises the built libraries and the report from e.g. unit testing and analyzing tools.

Continuous Integration


For coninuous build, test and reporting, see the different projects setup at https://developer.lindholmen.se/jenkins

Artifacts


There is no installed artifact repository manager. Artifacts are however copied to a folder on the Jenkins build server and exposed at http://developer.lindholmen.se/repo

For projects defined on Jenkins, the following is a recommendation of tasks to run: clean build publishToMavenLocal copyArtifacts

The important part is:

task copyArtifacts(type: Copy) {
    from 'build/libs'
    into '/srv/repo'
}

Dependency Management


To add dependencies from artifacts published to http://developer.lindholmen.se/repo

Add the following to build.gradle:

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
}

and also add the following:

// Kudos: http://stackoverflow.com/questions/17123606/how-to-download-external-files-in-gradle
task downloadSDP(type: MyDownload) {
    sourceUrl = 'http://developer.lindholmen.se/repo/artifacts/SDP/1.2/SDP-1.2.jar '
    target = file('libs/SDP-1.2.jar')
}

class MyDownload extends DefaultTask {
    @Input
    String sourceUrl

    @OutputFile
    File target

    @TaskAction
    void download() {
        ant.get(src: sourceUrl, dest: target)
    }
}
 

Software Components


See Software components

Code Formatting


See attached file "Eclipse Java Formatter Configuration".

Wiki formatting


There is a template availabe which should be used for formatting of this wiki. Copy and paste the text from the template and use this as a baseline of your wiki text. 
 

Table of contents editing


Whenever you have added, deleted or renamed a wiki page, you should edit the sidebar page and edit the table of contents in there. Please adjust the formatting (indentation) so it corresponds to the logical wiki structure. 

AGA_formatter.xml Magnifier - Eclipse Java Formatter Configuration (30.4 KB) Peter Kembro, 04/23/2014 02:34 PM