GithubHelp home page GithubHelp logo

dlr-sc / maven-tycho-demo Goto Github PK

View Code? Open in Web Editor NEW
10.0 5.0 7.0 9.98 MB

A sample project explaining Maven Tycho for Eclipse RCP applications.

HTML 89.05% Java 10.65% Xtend 0.30%
tycho maven java eclipse

maven-tycho-demo's Introduction

Maven Tycho Demo

A Maven Tycho Demo project for Eclipse RCP applications such as Virtual Satellite.

Project Status

Status Build Status Coverage Status Download Maven-Tycho-Demo for Development build.

Status Build Status Coverage Status Download Maven-Tycho-Demo for Integration build.

Status Build Status Coverage Status Download Maven-Tycho-Demo for Master build.

Purpose

  1. This project is a test setup to make Virtual Satellite open source. it helps to transform the software engineering processes from the internal towards the GitHub infrastructure.
  2. Maven Tycho can be very complicated. This project helps developers that are new to Maven Tycho. This project provides core functionality to automate an Eclipse RCP build process and helps setting up such process.

Requirements

This Maven Tycho Demo is based on Java / Eclipse. The following infrastructure is required:

  • Java Development Kit (JDK) 8
  • Eclipse Oxygen or newer
    • Including Checkstyle
    • Including Spotbugs
    • Including M2E
  • Maven 3
  • Windows 7 or Linux Computer

Quickstart

  1. Open your Eclipse and switch to the Git Perspective.
  2. Clone this repository.
  3. Import all projects and working-sets via the ProjectSet file in de.dlr.maven.tycho.demo/projectSet
  4. Resolve and set the targe tplatform in _de.dlr.maven.tycho.demo.target/mavenTychoDemo.target
  5. Execute the launchers for running the RCP application from within de.dlr.maven.tycho.demo/launchers
  6. Execute the Tycho Maven build from de.dlr.maven.tycho.demo/launchers
  7. Inspect the build artifacts for the p2 repository in de.dlr.maven.tycho.p2updatesite/target
  8. Inspect the build RCP application in de.dlr.maven.tycho.product/target

Travis CI and Releases

Tarvis CI is set-up to start a build job for every branch and every new commit to the repository. It executes all relevant tests such as jUnit, SWTBot, Checkstyle, SpotBugs, etc. Making a successful pull-request into development requires all tests to pass.

Starting a Travis CI job on development or integration deploys all relevant artifacts.

For creating a new release, create a tag starting with Release_ on the master branch. All artifacts are automatically deployed.

Provided Features

This example intends to represent a realistic scenario for building an Eclipse based RCP application such as Virtual Satellite. Accordingly it provides the following features:

  • Maven Tycho Build Process for Eclipse RCP Applications
  • Examples for Build with maven and eclipse
  • Examples for Development, Integration and Release builds
  • Examples for Features, Plugins, Products, Update Sites
  • Examples for License Feature
  • Examples for Branding Feature
  • Examples for Documents Feature with Release Notes and API Doc
  • Examples for External Library Dependencies
  • Examples for Test Fragments
  • Integration of JUnit tests
  • Integration of Checkstyle tests
  • Integration of Spotbug checks
  • Standalone Maven Tycho build process
  • Eclipse IDE Integrated Maven Tycho build process

Downloads and Deployment

Deployments are done using GitHub Releases as well as sourceforge: Download Maven-Tycho-Demo

Software Engineering Requirements

This project follows DLR Software Engineering Requirements for application class 1 as documented in the Checklist.

Contribution

To contribute to this project follow the given steps:

  1. Create your own fork of the project.
  2. Apply your changes.
  3. Create a pull-request of your change to our development branch.

To increase chance that we accept your pull-request, make sure all tests are working. The best indicator is the Travis CI job. Next we will review your pull-request, give comments and maybe accept it.

License

Copyright 2019 German Aerospace Center (DLR)

The German Aerospace Center (DLR) makes available all content in this plug-in ("Content"). Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the Eclipse Public License Version 2.0 ("EPL"). A copy of the EPL is available at https://www.eclipse.org/legal/epl-2.0. For purposes of the EPL, "Program" will mean the Content.

If you did not receive this Content directly from German Aerospace Center (DLR), the Content is being redistributed by another party ("Redistributor") and different terms and conditions may apply to your use of any object code in the Content. Check the Redistributor's license that was provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise indicated below, the terms and conditions of the EPL still apply to this content.

Third Party Licenses

Third party licenses are named in the plug-ins where used in the respective aboutfiles folders. At runtime third party licenses can be viewed in the usual Eclipse About dialog.

maven-tycho-demo's People

Contributors

dependabot[bot] avatar franztobiasdlr avatar philmfischer avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

maven-tycho-demo's Issues

Fixing build

Build is broken. Need to update Linux distribution etc.

Enable project for external contributions

Got some request to open up for external contribution.

External Contribution should most likely done by PullRequests from forked repositories.

This could be explained in the readme.md.

โš ๏ธ ๐Ÿ’ฅ Nevertheless transition to EPL 2.0 in #4 has to be finished and closed first. ๐Ÿ’ฅ โš ๏ธ

Example Deployment to BinTray

Deploying only via GitHub Release is not sufficient for Eclipse p2 repositories.

An idea is to try out the OSS variant of bintray for p2 artifact deployment.

Internationalization

What about internationalization? I think most of the gui apps will need this.

Release 0.4.0

  • Go to integration
  • Apply final changes and fixes
  • Update Version Numbers
  • Update Release Notes.

SWT Bot UI Tests on Travis CI

The overall example should also integrate an exaple of using SWT Bot for UI testing.

This should also well integrate into Travis CI.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.