- π Release Date: 04th September 2024
Updated the embedded Maven from version 3.9.7 to 3.9.9; Maven 3.9.9 Release Notes.
The following arguments are supported:
<argLine>
<environmentVariables>
<systemPropertyVariables>
<workingDirectory>
<enableAssertions>
Configuration is propagated on unit test launch configuration creation and also when executing Maven > Update Project
.
- π Release Date: 04th June 2024
Various minor bug-fixes, enhancements and dependency updates.
Updated the embedded Maven from version 3.9.6 to 3.9.7; Maven 3.9.7 Release Notes.
- π Release Date: 21th February 2024
Updated the embedded Maven from version 3.9.5 to 3.9.6; Maven 3.9.6 Release Notes.
In the Preferences under Maven > User Settings
the user toolchain.xml
used in workspace builds can now be specified explicitly.
At the same time the maven-toolchains-plugin
is now disabled by default for workspace builds.
Source or resource folders of Maven-projects outside of the project's base directory are now considered in the workspace and are added to the project as linked resources.
Automatic configuration updates for Maven projects can now be disabled in the project preferences.
This allows to disable these updates individually per project and to store the setting in a preference file under version control,
which is useful for projects that require special workspace configuration that doesn't exactly match the configuration in the pom.xml
.
The .mvn/maven.config
allows to specify global and user settings, m2e now also takes these into account.
This improvement was gently sponsored by Sigasi.
- π Release Date: 27th November 2023
Updated the embedded Maven from version 3.9.4 to 3.9.5; Maven 3.9.5 Release Notes.
Previously, m2e embedded aether-okhttp-connector
, an alternative to Wagon HTTP connector, based on OkHttp, which was developed at a time when Maven 2's HTTP Connector didn't leverage HTTP/2 and parallel downloads.
However, the usage of this alternative connector introduced certain inconsistencies when compared to regular Maven CLI builds.
These discrepancies, often revolving around matters of authentication and proxies, posed challenges.
Maven 3.x significantly improved its resolver implementations, largely mitigating the advantages of aether-okhttp-connector
and bringing new features.
This shift left the aether-okhttp-connector
outdated and that project has now been abandoned.
m2e 2.4 has been adjusted to better align with the Maven 3.9 runtime.
This adjustment is expected to result in fewer issues pertaining to artifact resolution and proxy authentication.
However, due to its removal from the runtime, there exists a potential risk that third-party Plug-ins dependent on m2e's integrated OkHttp
functionality might experience disruptions.
- π Release Date: 29th August 2023
Updated the embedded Maven from version 3.9.1 to 3.9.4; Maven 3.9.4 Release Notes.
You can now install additional embedded Maven Runtimes using the m2eclipse update site
After the installation you can now select the desired default runtime, keep in mind that m2e internally still uses the EMBEDDED
runtime even if another is selected.
If you want to switch back to an older runtime you currently need to modify you eclipse installation:
- Make sure the older runtime is already installed
- close eclipse (and maybe make a backup)
- go to the
plugins
folder and locate the folders starting withorg.eclipse.m2e.maven.runtime_<version>
- delete higher runtime versions (e.g. 3.9)
- start eclipse and check that now an older runtime is used by default
Only relevant for developers of Plug-ins based on m2e
The single org.eclipse.m2e.archetype.common
Bundle that used to embed the maven-archetype jars was replaced by a set of multiple bundles, where each corresponds to one of the embedded archetype jars and has reduced OSGi metadata just sufficient for the use with m2e.
One of those bundles is again named org.eclipse.m2e.archetype.common
and serves as host bundle for the others, which are fragments to it.
- π Release Date: 23th May 2023
Updated the embedded Maven from version 3.8.7 to 3.9.1; Maven 3.9.1 Release Notes.
Projects that compile with Java 20 and therefore have a corresponding configuration of in their maven-compiler-plugin
are now supported.
Furthermore the processing has been enhanced to support future Java versions as soon as Eclipse JDT supports them.
- OSGi metadata generated for artifacts that don't contain a OSGi compliant MANIFEST.MF have been enhanced to also contain version ranges for
Import-Package
headers by default. - Source Bundles of excluded artifacts are now excluded too.
- π Release Date: 7th March 2023
This release fixes several regressions from the previous release.
- π Release Date: 28th February 2023
Previously, to participate in the incremental maven build it was necessary to
- explicitly configure a mapping, or
- there had to be a connector, or
- the plugin itself had to contain a mapping for a mojo This often leads to a poor user experience and we think that users are adding mojos on purpose because they perform valuable tasks.
Because of this, M2E now automatically enables the execution of mojos if there is no mapping configured. In case you want to change this there is a new configuration option to control the behavior:
The dependencies editor has been adapted to show all artifacts within a target location as a single table, instead of multiple tabs. This change also includes support for updating only a selected number of artifacts to their latest version, as well as undo/redo functionality.
The property <maven.test.skip>true</maven.test.skip>
and the skip
property in configurations of the maven-compiler-plugin
and maven-resources-plugin
are now taken into account by M2E. If enabled, M2E ignores the corresponding folder. It will no longer appear in the Package Explorer as a "Java" folder, but as a regular folder.
This allows, depending on the need (especially compilation time), to either not compile tests or not copy test resources.
In general, it is not recommended to use the mentioned properties but to use -DskipTests
instead:
https://maven.apache.org/surefire/maven-surefire-plugin/examples/skipping-tests.html
In the past, the project's build JRE was also used by default to execute Maven itself.
Now the default Java version for executing Maven is determined from the configuration of the maven-enforcer-plugin
rule requireJavaVersion
when creating or updating the Maven configuration. This value is no longer considered for configuring the project's build JRE.
In case this plugin configuration is not found, M2E falls back to either the project's build JRE or the workspace's default JRE.
For each Maven build configuration, you can overwrite the default execution JRE in the Maven Launch configuration's JRE tab:
- π Release Date: November 24th 2022
- All changes: https://github.com/eclipse-m2e/m2e-core/compare/2.0.2...2.1.0
The previously experimental feature of M2E to update Maven projects automatically on configuration changes matured and is now enabled by default.
For large projects, the build performance has been improved and the memory consumption has been reduced.
The connector for the bnd-maven-plugin
and maven-bundle-plugin
, which is included into M2E, has been improved to consider the jars specified on the Bundle-Classpath
of the generated MANIFEST.MF, when updating the Plugins JDT .classpath
.
The M2E Maven-Console now also supports tracking of so called polyglot Maven-projects. Those are projects that don't have a standard pom.xml
and whose Maven-model is instead created from another source. One prominent example in the Eclipse world are Eclipse-PDE projects that are build with Tycho(-pomless).
Due to this new support, polyglot Maven projects now also benefit from the Improved links to JUnit test-reports and project file in the Console as well as the capability to Automatically launch and attach Remote-Application-Debugger when Maven plug-in starts a forked JVM that waits for a debugger introduced in previous releases.
- π Release Date: August 30th 2022
- All changes: https://github.com/eclipse-m2e/m2e-core/compare/2.0.1...2.0.2
M2E now supports colored console printouts for Maven builds launched in the IDE out of the box.
This is built on top of the new support for colored Console content, which is added to Eclipse-Platform in the 2022-09/4.25 release (which is therefore required).
In the Run/Debug-configuration of a Maven Build
launch it can be controlled if the printout is colored or not (i.e. the value of Maven's style.color
property). The default is Auto
, which enables colored print-outs if colored Console printout is generally enabled in the workspace.
- π Release Date: August 5th 2022
- All changes: https://github.com/eclipse-m2e/m2e-core/compare/1.20.1...2.0.1
Running m2e now requires a Java-17 (or higher) compliant JRE.
The legacy textual editor is removed as it doesn't receive enough update/maintenance. The editor based on Generic Editor and LemMinX-Maven is now the only one distributed by m2e.
m2e-apt plugins that were so far included in JBoss Tools were migrated into m2e and are shipped by default with m2e installations. So annotation processing should be better supported out of the box.
The m2e mavenarchiver connector, so far part of some external repository, was migrated into m2e and is shipped by default with m2e installations.
Updated the embedded maven from 3.8.4 to 3.8.6.
For clients that request setup MojoExecution outside of MavenBuilder context the MavenProject is no longer cached anymore.
In general, MojoExecutions should be set up within the scope of MavenExecutionContext
.
Maven archetypes can use Groovy scripts for the processing of input parameters since Maven 3, which is now also supported via m2e. In addition, validation of parameters with regular expressions is now also supported:
Any additional inputs required by the Groovy script are handled in the Eclipse console:
This feature was sponsored by Faktor Zehn
This major release improves (and cleans up) various legacy APIs. Some clients may require to update their code if they use removed APIs. This commit can be used as an example of how to adapt to newer APIs. Usually, calling mavenProjectFacade.createExecutionContext().execute(...)
is a good replacement for removed APIs.
- π Release Date: March 04th 2022
- All changes: https://github.com/eclipse-m2e/m2e-core/compare/1.20.0...1.20.1
Embedded *.jnilib files are now signed for macOS to fulfill macOS-notarization requirements.
- π Release Date: February 11th 2022
- All changes: https://github.com/eclipse-m2e/m2e-core/compare/1.19.0...1.20.0
π’ This is most probably the last 1.x release of m2e. m2e will then start working on a 2.0 version, with some disruptive changes. If you're using m2e in your application and rely on its API, please consider following closely future development to facilitate the integration of further versions.
Automatically launch and attach Remote-Application-Debugger when Maven plug-in starts a forked JVM that waits for a debugger
If a Maven plug-in like Maven-Surefire
, Tycho-Surefire
or Tycho-Eclipserun
launches a separate ("forked") JVM process in debug mode, so that it waits for a debugger being attached and prints a line like Listening for transport dt_socket at address: <port-number>
,
M2E now detects such lines and automatically launches a Remote-Application-Debugger
in the context of the workspace project being build at that time and using the printed port. As usual the debugger stops at encountered break-points so one can step through the code or analyze the state of variables.
For example to debug a test executed by the Maven-surefire plug-in within a Maven build, one only has to specify the property maven.surefire.debug=true
in the Maven launch-configuration and the debugger will just stop at the break-points in the executed tests:
Further information on how to activate the debug mode of forked JVMs for the plug-ins mentioned above, can be found at the following links:
Clicking on the link placed at the name of a running test-class now opens the JUnit
view that displays the test-reports of the executed tests:
For each project build a link is now added to the project's headline, which opens the project's pom.xml
file when clicked:
In case of a build failure another link, that opens the pom.xml
of the failed project, is added to the line that that describes the failure at the very end of the Maven build print-out:
In the wizard, it is now possible to request the generation of a feature
If the option is checked the wizard contains a new page to enter basic info
If one likes he can add additional plugins as well that should be mentioned in the feature (but this step is optional)
Afterward this will end up in the target source and one can add/edit/adjust additional data, effectively everything the feature.xml supports is allowed here:
Maven 3.8.4 is now used internally in m2e. This allows benefiting from various improvements of recent Maven versions
LemMinX-Maven 0.5.1 is now used and provides many major improvements. A noticeable one is the search.maven.org engine is now used instead of the indexer. This will greatly improve the "warmup" time of the editor. Other bugfixes and performance improvements have a very positive and visible impact on the user experience when using the Generic Editor.
- Performance boost in parent project resolution https://github.com/eclipse-m2e/m2e-core/commit/ec12bd6222c377f93e21af0dc1988fba2134123d
- Downgrade the "Plugin Execution not covered by lifecycle configuration" error to warning #424 https://github.com/eclipse-m2e/m2e-core/commit/e13899b1345da44fd888d851bb249daefc044d20
*.pom
files are treated as regular Mavenpom.xml
files and should now benefit from similar edition assistance- Overview page in the Pom Editor now also lists the packaging types provided by Maven extensions that are accessible from the current project.
- π Release Date: November 22nd 2021
- All changes: https://github.com/eclipse-m2e/m2e-core/compare/1.18.2...1.19.0
The legacy WTP-based pom editor is not included by default anymore. The LemMinX-Maven based editor is now referenced by default from the main feature, but as optional, so it can still be uninstalled, and the legacy editor can be manually installed instead.
The new editor brings more powerful pom.xml understanding and edition features; and evolves much faster than the WTP-based one.
- π Release Date: October 15th 2021
- All changes: https://github.com/eclipse-m2e/m2e-core/compare/1.18.1...1.18.2
<target name="multipleElements">
<locations>
<location includeDependencyScope="compile" includeSource="true" missingManifest="generate" type="Maven">
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
<version>11.0.3</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-servlet</artifactId>
<version>11.0.3</version>
<type>jar</type>
</dependency>
</location>
</locations>
</target>
Old target formats are automatically converted.
<target name="extraRepository">
<locations>
<location includeDependencyScope="compile" includeSource="true" missingManifest="generate" type="Maven">
<dependencies>
<dependency>
<groupId>edu.ucar</groupId>
<artifactId>cdm</artifactId>
<version>5.0.0</version>
</dependency>
</dependencies>
<repositories>
<repository>
<id>unidata-all</id>
<url>https://artifacts.unidata.ucar.edu/repository/unidata-all/</url>
</repository>
</repositories>
</location>
</locations>
</target>
With the upgrade to the newer LemMinX-Maven, the edition of pom.xml with the Generic Editor receives several comfortable fixes and improvements.
Extract jpms arguments (--add-exports
, --add-opens
, --add-reads
, --patch-module
) from the maven-compiler-plugin
compiler arguments if any.
Dispatch the arguments in the right container (if the target module is part of JRE then in JreContainer else in M2eContainer) and
transform them into eclipse classpath attributes (add-exports
, add-opens
, add-reads
, patch-module
)
Many improvements happened in m2e to facilitate the setup and maintenance of the development environment. See details in CONTRIBUTING.md.
- π Release Date: June 23rd, 2021
- All changes: https://github.com/eclipse-m2e/m2e-core/compare/1.18.0...1.18.1
Main changes:
- Use newer guava 30.1
- Code cleanups
- Improve project structure, documentation and other files to ease contributions
- π Release Date: June 3rd, 2021
- All changes: https://github.com/eclipse-m2e/m2e-core/compare/1.17.2...1.18.0
- π Release Date: March 2nd, 2021
- All changes: https://github.com/eclipse-m2e/m2e-core/compare/1.17.1...1.17.2
Main contents:
- Upgrade dependencies and build toolchain: Most noticeably, Guava 30.1 is now used
- Improvements to the LemMinX-Based pom editor, mainly through upgrade to newer Wild Web Developer and LemMinX-Maven releases
- Improvements & fixes to Maven PDE Target Platform location editor
- High-resolution icons β‘οΈππ
- Performance improvement/fix in the Run Configuration with Verifying launch attributes job β‘οΈππ
π Release notes for 1.17.1 and former releases are available at https://projects.eclipse.org/projects/technology.m2e/releases/