Skip to content

Commit

Permalink
Initial release
Browse files Browse the repository at this point in the history
  • Loading branch information
AlexisJehan committed Dec 23, 2022
0 parents commit 90f3b1c
Show file tree
Hide file tree
Showing 125 changed files with 13,389 additions and 0 deletions.
27 changes: 27 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name: CI
on: push
jobs:
build:
strategy:
matrix:
distribution: ['temurin']
java-version: ['11', '16', '17', '18', '19']
include:
- distribution: 'adopt'
java-version: '12'
- distribution: 'adopt'
java-version: '13'
- distribution: 'adopt'
java-version: '14'
- distribution: 'adopt'
java-version: '15'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-java@v3
with:
distribution: ${{ matrix.distribution }}
java-version: ${{ matrix.java-version }}
cache: maven
- run: mvn --batch-mode package
- uses: codecov/codecov-action@v2
16 changes: 16 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Eclipse
.classpath
.project
.settings/

# Intellij
.idea/
*.iml
*.iws

# Mac
.DS_Store

# Maven
log/
target/
6 changes: 6 additions & 0 deletions .mvnchk-ignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
commons-cli:commons-cli:20040117.000000

# FIXME NoSuchMethodError with maven-core:3.8.6
org.apache.maven.resolver:maven-resolver-connector-basic:1.?.?
org.apache.maven.resolver:maven-resolver-transport-file:1.?.?
org.apache.maven.resolver:maven-resolver-transport-http:1.?.?
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Changelog

## 1.1.0 _(in progress)_

## 1.0.0 _(2022-12-23)_
Initial release
21 changes: 21 additions & 0 deletions LICENSE.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2022 Alexis Jehan

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
103 changes: 103 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
<image src="logo.png" align="right" width="200"/>

# Maven Check
[![release](https://img.shields.io/github/v/release/AlexisJehan/MavenCheck?display_name=tag)](https://github.com/AlexisJehan/MavenCheck/releases/latest)
[![build](https://img.shields.io/github/actions/workflow/status/AlexisJehan/MavenCheck/ci.yml?branch=main)](https://github.com/AlexisJehan/MavenCheck/actions/workflows/ci.yml)
[![coverage](https://img.shields.io/codecov/c/github/AlexisJehan/MavenCheck)](https://codecov.io/gh/AlexisJehan/MavenCheck)
[![license](https://img.shields.io/github/license/AlexisJehan/MavenCheck)](LICENSE.txt)

A _Java 11+_ command line tool to check for artifact updates of _Maven_ and _Gradle_ projects.

## Introduction
**Maven Check** aims to help developers to keep their projects up-to-date by checking for last available dependency and
plugin versions. Unlike some existing _Maven_ plugins, _Maven Check_ uses an advanced filtering system to choose the
most relevant update version for an artifact.

### Features
- Standalone and portable
- Recursive build files lookup
- Compact and comprehensible output
- Smart filtering to exclude non-release versions
- Smart filtering to select versions with the same qualifier (if any)
- Possibility to filter specific artifacts or update versions using ignore files
- Use any already installed _Maven_ configuration and repository
- Use any already installed _Gradle_ installation if available, or download a wrapper distribution

## Getting started

### Prerequisites
_Maven Check_ is running on most operating systems, it only requires _Java 11_ or higher to be installed.

You can check that _Java_ is available in your environment and its version using the following command:
```console
java -version
```

### Installation
You can download binaries for the latest version of _Maven Check_ on the
[release](https://github.com/AlexisJehan/MavenCheck/releases/latest) page.

#### Linux / Mac
Execute following commands in the folder where the downloaded archive file is
located:
```console
sudo tar -xvzf maven-check-1.0.0-bin.tar.gz --directory /opt
export PATH=$PATH:/opt/maven-check-1.0.0/bin
```

#### Windows
Extract the content of the downloaded archive file and move the extracted folder to `C:\maven-check-1.0.0`, then:
- Right-click on the _Windows_ icon and select "System"
- On the right, click on "Advanced system settings"
- In the new window, click on "Environment Variables..."
- Find the "Path" variable, choose "Edit", and add `;C:\maven-check-1.0.0\bin` at the end

### Verify
If _Maven Check_ is correctly installed, this command should work as expected:
```console
mvnchk --version
```

## Usage
```
usage: mvnchk [<path>] [-h] [-i] [-s] [-v]
-h,--help Display help information
-i,--ignore-snapshots Ignore build file artifacts with a snapshot
version
-s,--short Only show build files with at least one artifact
update
-v,--version Display version information
```

## Ignore file
_Maven Check_ allows to ignore artifacts or update versions by having a `.mvnchk-ignore` file:
- globally in the user home
- specifically in a project directory.

Here is an example of how to write it:
```
# Ignore a specific artifact
com.google.guava:guava
# Ignore a specific artifact update version
com.google.guava:guava:30.0-android
# Ignore artifact update versions using the "any characters" wildcard
com.google.guava:guava:*-android
# Ignore artifact update versions using the "any single character" wildcard
com.google.guava:guava:30.?-android
```

## Compatibility matrix
The table below shows which version of _Maven_ and _Gradle_ is used by each _Maven Check_ release. However, a higher
version of a build tool may still be compatible.

| Maven Check | Maven version | Gradle version |
|:-----------:|:-------------:|:--------------:|
| 1.0.0 | 3.8.6 | 7.6 |

Note: _Gradle_ is compatible starting with _Gradle 4.8_.

## License
This project is licensed under the [MIT License](LICENSE.txt).
Binary file added logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit 90f3b1c

Please sign in to comment.