Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Identify Maven Plugins Goals #126

Closed
brunoborges opened this issue Sep 12, 2018 · 5 comments
Closed

Identify Maven Plugins Goals #126

brunoborges opened this issue Sep 12, 2018 · 5 comments
Assignees
Labels
feature-request New feature or request

Comments

@brunoborges
Copy link
Member

Currently, the Maven view only lists the well-known Maven goals.

When plugins are added to the pom.xml, the View should identify what goals these plugins provide.

This is how the view looks like on VS Code:
image

This is how the view looks like on IntelliJ:
image

@Eskibear
Copy link
Member

Eskibear commented Dec 5, 2018

My proposal is to:

  1. Read plugin information from the effective pom.
  2. Call mvn help:describe to retrieve the goals of a plugin.

It looks like the following:
image

@fssrepository
Copy link

fssrepository commented Dec 6, 2018

@Eskibear

I'm not a big designer, but that's what I need, and struggling with on daily basis.

Pls. notice there is "tag" button in the search bar, which changes the view between tasks and dependencies. Eclipse and Netbeans has a feature to filtering inside a dependency tree. It's a deal breaker for me to resolve the messy dependency tree. Unfortunately, it's a little bit much on that tiny area. Netbeans has an awful and very slow visual graph solution only, which is not that usable. I would like my little eclipse feature back, pls. i beg you to make it happen. :) For gradle also.

image

The vscode java dependency plugin shows classes inside not showing transitive dependencies. Most of the company sucks on it, and waste the majority of the time to resolve circular dependencies, or excluding older versions as somehow it hasn't been excluded automatically.

Good common examples (official documents urges to do that):

mysql

<dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-spatial</artifactId>
            <exclusions>
                <exclusion>
                    <artifactId>postgresql</artifactId>
                    <groupId>postgresql</groupId>
                </exclusion>
            </exclusions>
        </dependency>

jetty

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <scope>provided</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

@Eskibear
Copy link
Member

@fssrepository I find in IntelliJ IDEA, they show the dependency tree (only including those in compile scope).
image

We can also show a similar tree view in this Maven extension. And currently we just provide data to a tree view, if we want to support searching, we'll have to adopt the following API. I think technically it's feasible.
https://github.com/Microsoft/vscode/blob/34f0b1876ca8164d6835da58cc0e3174cba5acf7/src/vs/vscode.d.ts#L6632-L6677

@fssrepository
Copy link

fssrepository commented Dec 11, 2018

Referencing to the previous comment:
https://github.com/Microsoft/vscode-maven/issues/161#issuecomment-446107445

I have talked about dependency:tree menu item next to the effective pom. It's not a maven plugin responsibility, but to show the following results of the 1-5 section combined in a tree in a filterable way would be a nice robust option:

  1. At the moment I think mvn dependency:tree does not show the dependencies coming from the maven parent, and it does not show the plugin dependencies also. (which parent has the plugin dependency - it can be really deep 5-10 level up - unfortunately, it happens)

  2. The effective pom shows the parent dependencies also, but in a flat/non-transitive way.
    I'm not sure how to achieve to step back on the parent tree, not only in the maven transitive dependency tree. Most of the time, I need to look into the maven repo.

  3. separating compile/test/runtime scopes in the tree

  4. Multimodule scenario, where every child has the same parent and got the same versioning while building.

  5. Profile management

Filter can be some sort of regex by type - so half regex/half type.

For example:
At the moment there is a discussion about to improve the "Problems" tab - where there is a problem that I cannot filter "info" type inside a project. (multi-project workspace) As a developer, I was trying to think logically, and the first line was I tried is: **/project_name[info] - where the info was not the text, it was the type. - A similar approach might be introduced here also to filter out dependency types.

@Eskibear
Copy link
Member

I'm closing it as the original feature has been implemented.

For the dependency tree view feature request, there's already another issue #161 for it, let track it there.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature-request New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants