All Projects â†’ jonathanlermitage â†’ oga-maven-plugin

jonathanlermitage / oga-maven-plugin

Licence: MIT license
🧩 Old GroupIds Alerter - A Maven plugin that checks for deprecated groupId+artifactId (e.g. did you know that graphql-spring-boot-starter moved from com.graphql-java to com.graphql-java-kickstart?).

Programming Languages

kotlin
9241 projects
shell
77523 projects
Batchfile
5799 projects

Projects that are alternatives of or similar to oga-maven-plugin

light-jpf
Lightweight Java Plugin Framework
Stars: ✭ 19 (-13.64%)
Mutual labels:  maven-plugin
copulae
Multivariate data modelling with Copulas in Python
Stars: ✭ 96 (+336.36%)
Mutual labels:  dependency-analysis
native-build-tools
Native-image plugins for various build tools
Stars: ✭ 168 (+663.64%)
Mutual labels:  maven-plugin
serviceloader-maven-plugin
Maven plugin for generating java serviceloader files
Stars: ✭ 46 (+109.09%)
Mutual labels:  maven-plugin
build-helper-maven-plugin
Build Helper Maven Plugin
Stars: ✭ 77 (+250%)
Mutual labels:  maven-plugin
aws-maven-plugin
Deploys resources to AWS using maven
Stars: ✭ 25 (+13.64%)
Mutual labels:  maven-plugin
docs-maven-skin
Minimalist HTML5 and Bootstrap based Maven Skin for using Maven Site as a documentation site.
Stars: ✭ 31 (+40.91%)
Mutual labels:  maven-plugin
react
Basic Primitives Diagrams for React. Data visualization components library that implements organizational chart and multi-parent dependency diagrams.
Stars: ✭ 15 (-31.82%)
Mutual labels:  dependency-analysis
keep-changelog-maven-plugin
Maven plugin to help creating CHANGELOG by keeping one format and solving merge request conflicts problem by extraction of new CHANGELOG entries to seperate files.
Stars: ✭ 22 (+0%)
Mutual labels:  maven-plugin
mixedvines
Python package for canonical vine copula trees with mixed continuous and discrete marginals
Stars: ✭ 36 (+63.64%)
Mutual labels:  dependency-analysis
RapidMavenPushPlugin
A Gradle plugin : Upload Artifacts to Multi Maven Repository
Stars: ✭ 21 (-4.55%)
Mutual labels:  maven-plugin
kobby
Kobby is a codegen plugin of Kotlin DSL Client by GraphQL schema. The generated DSL supports execution of complex GraphQL queries, mutation and subscriptions in Kotlin with syntax similar to native GraphQL syntax.
Stars: ✭ 52 (+136.36%)
Mutual labels:  maven-plugin
gradle-git-versioning-plugin
This extension will set project version, based on current Git branch or tag.
Stars: ✭ 44 (+100%)
Mutual labels:  maven-plugin
webstart
www.mojohaus.org/webstart/
Stars: ✭ 27 (+22.73%)
Mutual labels:  maven-plugin
xml-maven-plugin
XML Maven Plugin
Stars: ✭ 18 (-18.18%)
Mutual labels:  maven-plugin
jaxws-maven-plugin
www.mojohaus.org/jaxws-maven-plugin/
Stars: ✭ 18 (-18.18%)
Mutual labels:  maven-plugin
javascript
Basic Primitives Diagrams for JavaScript - data visualization components library that implements organizational chart and multi-parent dependency diagrams, contains implementations of JavaScript Controls and PDF rendering plugins.
Stars: ✭ 46 (+109.09%)
Mutual labels:  dependency-analysis
npmdc
ruby gem to check for missed NPM dependencies
Stars: ✭ 38 (+72.73%)
Mutual labels:  dependency-analysis
elasticsearch-maven-plugin
A Maven plugin to run a single node Elasticsearch cluster during the integration test phase of a build
Stars: ✭ 78 (+254.55%)
Mutual labels:  maven-plugin
wagon-maven-plugin
www.mojohaus.org/wagon-maven-plugin/
Stars: ✭ 23 (+4.55%)
Mutual labels:  maven-plugin

Old GroupIds Alerter - Maven Plugin

A Maven plugin that checks for deprecated groupId + artifactId couples, in order to reduce usage of non-maintained 3rd-party code (e.g. did you know that artifact graphql-spring-boot-starter moved from from com.graphql-java to com.graphql-java-kickstart?).

Works with Maven 3.3+ and JDK8+.

Looking for a Gradle plugin? Check oga-gradle-plugin.

Author

Jonathan Lermitage ([email protected])
Linkedin profile: jonathan-lermitage-092711142

Usage

Goal

There's one maven goal: biz.lermitage.oga:oga-maven-plugin:check.

Execution will produce error message everytime a deprecated groupId + artifactId couple is found.
You may see something like [ERROR] 'com.graphql-java:graphql-spring-boot-starter' should be replaced by 'com.graphql-java-kickstart:graphql-spring-boot-starter', and Maven build failure.

Screenshot

Maven coordinates

Maven coordinates (Nexus):

<groupId>biz.lermitage.oga</groupId>
<artifactId>oga-maven-plugin</artifactId>
<version>1.7.0</version>

Configuration

You can use an alternate definitions file by using the ogDefinitionsUrl property. You can also choose to not fail the build if deprecated dependencies are found with the failOnError property (defaults to true):

<build>
    <plugins>
        <plugin>
            <groupId>biz.lermitage.oga</groupId>
            <artifactId>oga-maven-plugin</artifactId>
            <version>1.7.0</version>
            <configuration>
                <ogDefinitionsUrl>https://your-custom-location/your-og-definitions.json</ogDefinitionsUrl>
                <failOnError>false</failOnError>
            </configuration>
        </plugin>
    </plugins>
</build>

You can also provide a JSON ignore-list in order to exclude some groupIds or groupId + artifactIds:

            <configuration>
                <ignoreListFile>local-ignore-list.json</ignoreListFile>
                <!-- or -->
                <ignoreListUrl>https://website.com/remote-ignore-list.json</ignoreListUrl>
            </configuration>

Please see the sample ignore-list file. For each of your dependencies or proposed migrations, the plugin will ignore it if it finds its coordinates in the ignore-list. So, by ignoring "foo:bar" (or "foo"), you will ignore this coordinate from your project dependencies and from the definitions file.

You can skip check (useful in multi-branch pipeline) by using the oga.maven.skip property.

Finally, you can also set configuration in command line with -DogDefinitionsUrl, -DignoreListFile, -DignoreListUrl, -DfailOnError, -Doga.maven.skip properties.

Build

Just call ./mvnw clean install or ./do i to build plugin and install into local Maven repository.

Contribution

Code

Open an issue or a pull-request. Contributions must be tested at least on JDK8.
Please reformat new code only: do not reformat the whole project or entire existing file (in other words, try do limit the amount of changes in order to speed up code review).

Definitions file

The list of deprecated groupId + artifactId couples is stored in og-definitions.json file. To remove/update/add entries, you can open an issue, submit a merge request, or simply send an email ([email protected]).

Find new entries for definitions file

Go to maven-index-search-suspect-coordinates: this project downloads Maven Central indexes and looks for potential entries, then saves it to a file; i.e. artifactIds that exists for two different groupIds (keep in mind that 90~99% are false-positive).
You can view resulting file here: suspiciousCoordinates.txt (warning, it's a ~3 MB file).
A filtered version is available here: suspiciousCoordinates-filtered.txt (~500 KB). In this file, we keep only dependency couples where a groupId is a part of the other groupdId, like com.graphql-java and com.graphql-java-kickstart.

License

MIT License. In other words, you can do what you want: this project is entirely OpenSource, Free and Gratis.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].