An open API service indexing awesome lists of open source software.

https://github.com/pmd/pmd-eclipse-plugin

The pmd-eclipse-plugin integrates the source code analyzer PMD into the Eclipse IDE
https://github.com/pmd/pmd-eclipse-plugin

eclipse eclipse-marketplace pmd

Last synced: 12 days ago
JSON representation

The pmd-eclipse-plugin integrates the source code analyzer PMD into the Eclipse IDE

Awesome Lists containing this project

README

          

# PMD Eclipse Plugin

[![Build Status](https://github.com/pmd/pmd-eclipse-plugin/actions/workflows/build.yml/badge.svg?branch=main)](https://github.com/pmd/pmd-eclipse-plugin/actions/workflows/build.yml)
[![Eclipse Marketplace](https://img.shields.io/eclipse-marketplace/v/pmd-eclipse-plugin.svg)](https://marketplace.eclipse.org/content/pmd-eclipse-plugin)

Release Notes:

Eclipse Update Site:

* Releases:
* Snapshots:

Marketplace: [![Drag to your running Eclipse workspace. Requires Eclipse Marketplace Client](https://marketplace.eclipse.org/sites/all/themes/solstice/public/images/marketplace/btn-install.png)](http://marketplace.eclipse.org/marketplace-client-intro?mpc_install=2755329)

## How to contribute

You can contribute by testing the latest version, creating bug reports, or even forking
the repository on github and create pull requests. Any contributions are welcome!

### Testing the latest version

The plugin requires Java 17 for building.

Then simply build the plugin locally using maven:

./mvnw clean verify

You'll find the zipped update site in the folder `net.sourceforge.pmd.eclipse.p2updatesite/target/`.
Point eclipse to the zip file in this folder as an update-site and install the
latest SNAPSHOT version.

### Bug Reports

Please file any bug reports in the bug tracker at github:

### GitHub Repository

Just fork the the GitHub Repository pmd/pmd-eclipse-plugin and create a pull request.

To get started, see also the next section.

## Short Developer's Guide

### Compilation
Simply run `./mvn clean verify`. The plugin's update site will be generated in
`net.sourceforge.pmd.eclipse.p2updatesite/target/repository`. You can use this directory as
an update site to install the new plugin version directly into your Eclipse.

### Importing the projects in Eclipse
Make sure you have the Maven Integration (m2e - http://eclipse.org/m2e/) installed. Then you can
import *Existing Maven Projects*.
You should see 6 projects:

* net.sourceforge.pmd.eclipse - that's the feature
* net.sourceforge.pmd.eclipse.p2updatesite - generates the update site
* net.sourceforge.pmd.eclipse.parent - the parent pom project
* net.sourceforge.pmd.eclipse.plugin - the actual plugin code
* net.sourceforge.pmd.eclipse.plugin.test - the (unit) tests for the plugin
* net.sourceforge.pmd.eclipse.plugin.test.fragment - an example extension of the plugin used during the tests

### Debugging
You can run eclipse with debugging enabled and connect to it via remote debugging:

eclipse -data workspace-directory -vmargs -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=8000

### Releasing and updating the official eclipse update site

The update site is hosted on github as a Github Pages site of the repository
.

The release script running on Github Actions will automatically update the repository pmd-eclipse-plugin-p2-site and
add the new release, update the repository metadata (compositeContent.xml and compositeArtifacts.xml
as well as index.md) and push the changes.

The release happens in two phases:

1. Update the repository locally to prepare the new version:
* Update the changelog
* Update the versions
* Create a tag
* Update the changelog for the next version
* Update the versions
2. Push the changes and the tag. The [Github Actions build](https://github.com/pmd/pmd-eclipse-plugin/actions) will
then publish the new version on [update site](https://github.com/pmd/pmd-eclipse-plugin-p2-site/) and
[github releases](https://github.com/pmd/pmd-eclipse-plugin/releases). It will also upload the update site
to [sourceforge](https://sourceforge.net/projects/pmd/files/pmd-eclipse/zipped/) and create a sourceforge
[blog entry](https://sourceforge.net/p/pmd/news/).

#### Script

See `do-release.sh`.

Verify, that the zipped update site has been uploaded to
[GitHub Releases](https://github.com/pmd/pmd-eclipse-plugin/releases) and [sourceforge](https://pmd.github.io/pmd-eclipse-plugin-p2-site/)
and that a [news blog entry](https://sourceforge.net/p/pmd/news/) has been created on sourceforge.

### Updating the used PMD version
The parent pom contains the property `pmd.version`. This is used inside the plugin module, to resolve the dependencies.
In order to change the PMD version, change this property and rebuild (`mvn clean package`). In case PMD has some
changed (added/removed) transitive dependencies, you'll need to update `n.s.p.e.plugin/META-INF/MANIEFEST.MF` as well.
All transitive dependencies are copied into the folder `n.s.p.e.plugin/target/lib` during the build.

## Useful References

*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*