VSCode extension "Maven for Java"
Перейти к файлу
Yan Zhang 57f4b2504e
Migrate to use vscode-test (#366)
* Migrate to use vscode-test

Signed-off-by: Yan Zhang <yanzh@microsoft.com>

* exclude test files for tslint

Signed-off-by: Yan Zhang <yanzh@microsoft.com>

* Add headers

Signed-off-by: Yan Zhang <yanzh@microsoft.com>

* Add basic test cases

Signed-off-by: Yan Zhang <yanzh@microsoft.com>
2019-07-16 10:56:21 +08:00
.github Create issue template for feature request (#321) 2019-05-08 14:50:26 +08:00
.vscode Migrate to use vscode-test (#366) 2019-07-16 10:56:21 +08:00
images Bump version to 0.14.1 (#238) 2019-01-29 16:57:07 +08:00
mvnw Embed maven wrapper (#344) 2019-06-20 12:14:59 +08:00
resources Support to create project with specific archetype version (#357) 2019-07-01 11:20:29 +08:00
src Migrate to use vscode-test (#366) 2019-07-16 10:56:21 +08:00
.gitignore Use webpack to improve installation/activation performace. (#167) 2018-12-10 10:46:07 +08:00
.travis.yml fix travis 2017-12-06 12:09:21 +08:00
.vscodeignore Use webpack to improve installation/activation performace. (#167) 2018-12-10 10:46:07 +08:00
CHANGELOG.md Support to create project with specific archetype version (#357) 2019-07-01 11:20:29 +08:00
LICENSE.txt Update LICENSE.txt 2018-02-11 09:55:26 +08:00
README.md Update to use Azure Pipeline badge (#320) 2019-05-08 12:11:52 +08:00
TestPlan.md Support to create project with specific archetype version (#357) 2019-07-01 11:20:29 +08:00
Troubleshooting.md Fix typos and some polish (#139) 2018-10-15 11:34:05 +08:00
package-lock.json Migrate to use vscode-test (#366) 2019-07-16 10:56:21 +08:00
package.json Migrate to use vscode-test (#366) 2019-07-16 10:56:21 +08:00
package.nls.json Change display name of command maven.archetype.generate (#346) 2019-06-21 09:28:54 +08:00
package.nls.zh.json Change display name of command maven.archetype.generate (#346) 2019-06-21 09:28:54 +08:00
thirdpartynotice.txt Open troubleshooting page in browser. (#131) 2018-09-17 16:59:13 +08:00
tsconfig.json Add TS strict null check (#288) 2019-04-01 09:21:35 +08:00
tslint.json Migrate to use vscode-test (#366) 2019-07-16 10:56:21 +08:00
webpack.config.js Use webpack to improve installation/activation performace. (#167) 2018-12-10 10:46:07 +08:00

README.md

Maven for Java

Marketplace Version Installs Rating Build status

Features

Maven extension for VS Code. It provides a project explorer and shortcuts to execute Maven commands, improving user experience for Java developers who use Maven.

  • Support to generate projects from Maven Archetype.
  • Support to generate effective POM.
  • Provide shortcuts to common goals, plugin goals and customized commands.
  • Preserve command history to fast re-run.

Requirements

  • Java
  • Maven / Maven Wrapper

For troubleshooting, please refer to the page HERE.

Basic Usage

Maven Explorer

The extension scans pom.xml in your workspace, and displays all Maven projects and their modules in the sidebar.

Screenshot

Run Plugin Goals

The extension parse effective-pom of Maven projects, and displays all plugins and plugin goals hierarchically.

Screenshot

POM File Editing

The extension provides Maven specific completion suggestions when editing POM files, including snippets and artifact hints.

Screenshot

Re-Run Historical Commands

It preserves history of goals for each project, so you can fast re-run previous long commands, e.g. mvn <goals> -Dparam1=value1 -Dparam2=value2 -Dparam3=value3 ... There are 2 entries for it:

  • Command Palette -> select Maven: History ... -> Select a project -> Select command from the history
  • Right-click on a project -> Click History ... -> Select command from the history

Screenshot

Archetype Related

Generate from Maven Archetype

The extension loads archetypes listed in local/remote catalog. After selection, the extension sends mvn archetype:generate -D... to terminal. There are 2 entries for it:

  • Command Palette -> select Maven: Generate from Maven Archetype
  • Right-click on a folder -> Click Generate from Maven Archetype

Screenshot

Update Maven Archetype Catalog

With following steps, you can update the local cache of Maven remote catalog. It takes some time to download meta data from Maven central repository.

Command Palette -> select Maven: Update Maven Archetype Catalog.

Additional Configurations

JAVA_HOME and Other Environment Variables

This extension executes Maven by opening a terminal session and then calling Maven in that session. Maven requires the JAVA_HOME environment variable to be set. Maven will also look for other variables such as MAVEN_OPTS. If you prefer not to set those variables permanently you can configure them, or any other environment variable, in settings:

{
    "maven.terminal.customEnv": [
        {
            "environmentVariable": "MAVEN_OPTS",               // variable name
            "value": "-Xms1024m -Xmx4096m"                     // value
        },
        {
            "environmentVariable": "JAVA_HOME",                // variable name
            "value": "C:\\Program Files\\Java\\jdk-9.0.4"      // value
        }
    ]
}
Special Handling for JAVA_HOME

If you have Red Hat's Java Language Support extension installed, then you can specify JAVA_HOME in settings for that extension:

{
    "java.home": "C:\\Program Files\\Java\\jdk-9.0.4"      // Red Hat Java Language Support Setting
}

This extension (Maven for Java) can reuse that setting if you desire:

{
    "maven.terminal.useJavaHome": true      // Use the Red Hat Java Language Support Setting for JAVA_HOME
}

With this support, you can specify JAVA_HOME in one place and you do not need to use the maven.terminal.customEnv setting unless you have other environment variables to set.

If you have JAVA_HOME configured through the maven.terminal.customEnv setting, and also specify to reuse the Red Hat setting, then the value from maven.terminal.customEnv will take precedence.

Default Options for Maven Command The usage of Maven executable is:

usage: mvn [options] [<goal(s)>] [<phase(s)>]

You can use maven.executable.options to specify default options for all your Maven commands executed in current project.

{
    "maven.executable.options": "-o -s ./settings.xml"      // work offline, and use an alternative settings file 
}
Folder Exclusion for Searching POM Files

To speed up the searching of Maven projects, you can exclude folders in settings:

{
    "maven.projects.excludedFolders": [
        "**/.*",                // exclude hidden folders
        "**/node_modules",      // exclude node modules to speed up
        "**/target"             // exclude duplicated pom file in target folder
    ]
}
Customize Favorite Maven Commands

Specify a favorite command in settings:

{
    "maven.terminal.favorites": [
        {
            "alias": "full-build without tests",
            "command": "clean package -DskipTests"
        }
    ]
}

Now right-click on an project item, and then click Favorite .... The option full-build without tests should show up.

Data/Telemetry

VS Code collects usage data and sends it to Microsoft to help improve our products and services. Read our privacy statement to learn more. If you dont wish to send usage data to Microsoft, you can set the telemetry.enableTelemetry setting to false. Learn more in our FAQ.

Contributing

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.

Release Notes

Refer to CHANGELOG