GithubHelp home page GithubHelp logo

karelmaxa / wrensec-parent Goto Github PK

View Code? Open in Web Editor NEW

This project forked from wrensecurity/wrensec-parent

0.0 0.0 0.0 282 KB

Parent POM for Maven based Wren Security projects.

Home Page: http://wrensecurity.org

wrensec-parent's Introduction

Wren Security Parent

License Gitter

Parent POM for Wren Security projects provides default plugin definition and project build configuration.

Conventions

When updating the POM keep in mind following conventions:

  • all plugins MUST be defined using explicit version to make builds reproducible (i.e. no version ranges)
  • all plugins MUST have full coordinates inside <pluginManagement> section (i.e. no loose plugin references from <profiles> section)
  • plugin version SHOULD be defined using maven property to allow simple version override
  • plugin definitions inside the POM are sorted alphabetically by artifact ID
  • plugin definitions can contain processing instructions for m2e lifecycle
  • plugin artifact signatures are verified during the build so make sure all the keys are trusted

Plugin Specifics

TODO document important (worth mentioning) plugin configuration

Profile Specifics

Available profiles:

  • clirr - TODO document
  • enforce - runs Maven Enforcer Plugin (active by default)
  • full-release - creates and attaches javadoc and source JARs as project artifacts
  • metrics - runs various project reporting plugins (FindBugs, JaCoCo, PMD)
  • precommit - runs Maven Checkstyle Plugin
  • sign - generate GPG signatures
  • verify-artifact-sigs - verifies artifacti signatures (active by default)

OSGi Projects

Projects that are supposed to generate OSGi bundles have to include at least the following plugin configuration:

<build>
    <plugins>
        <!-- Include maven-bundle-plugin in the build process -->
        <plugin>
            <groupId>org.apache.felix</groupId>
            <artifactId>maven-bundle-plugin</artifactId>
        </plugin>
        <!-- Make maven-jar-plugin use manifest generated by the bundle plugin -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <configuration>
                <archive>
                    <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
                </archive>
            </configuration>
        </plugin>
    </plugins>
</build>

Housekeeping (useful for child project)

Show available version updates:

mvn versions:display-plugin-updates
mvn versions:display-dependency-updates
mvn versions:use-latest-versions

Dependency version check (useful when updating):

mvn dependency:resolve -DoutputFile=dependencies.txt
mvn dependency:resolve-plugins -DoutputFile=plugin-dependencies.txt

OSGi version check (useful when updating):

bnd print -Cci target/*.jar

wrensec-parent's People

Contributors

aldaris avatar brmiller avatar brunolavitforgerock avatar dave-luna avatar forgerocker avatar jnrouvignac avatar karelmaxa avatar kortanul avatar laurentvaills avatar markcraig avatar matthew-swift avatar mrpotes avatar pavelhoral avatar phillcunnington avatar siepkes avatar

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.