SoftwareEntwicklung Beratung Schulung

A coders, hackers heaven.....Hm...I do not think so...

Apache Maven Version 3.5.0-beta-1 Released

| Comments

The Apache Maven team would like to announce the release of Maven 3.5.0-beta-1.

NOTE: This is an BETA release. There is the potential that features may be removed between this release and the first GA release in the 3.5.x release line. Please consult the Known Issues section below before use

You can download the appropriate sources, etc. from the archives section on the download page as Maven 3.3.9 is still the recommended GA release

https://archive.apache.org/dist/maven/maven-3/3.5.0-beta-1/

Known Issues

The following issues were identified during release testing of this ALPHA release but have not been deemed as release blockers:

  • MNG-6190 – maven-resolver-provider’s DefaultArtifactDescriptorReader has mismatched constructor and initService methods (this issue does not affect normal usage of Maven)
  • MNG-6191mvn -f complains about illegal readlink option under macOS
  • MNG-6192 – The distribution zip file has unordered entries and some tools – most notably Maven wrapper – will fail to unzip the distribution

Why not Maven 3.4.0?

After Maven 3.3.9 was released, the Eclipse Aether project was retired and the code base was migrated to the Apache Maven project.

The original goal for the 3.4.0 release was to replace Aether with the exact same code after migration to the Apache Maven project and then proceed with bug fixes to the resolver code as well as other areas of Maven.

The migration of the code between the two foundations took longer than expected and as a result there were other changes committed to Maven core that were outside the scope of intent for 3.4.0.

In order to refocus on the original intent for 3.4.0, the decision was taken to revert the Maven core history to the point of the 3.3.9 release and merge in the desired changes one at a time.

Because there had been a lot of communication about different features being delivered and bugs fixed in Maven 3.4.0 and the new history may not contain them in the first release, the decision was taken to forever burn the 3.4.x release line.

More detail on this decision can be read in the mailing list archive.

Release Notes – Maven – Version 3.5.0-beta-1

Bugs:

  • MNG-5895 – Problem with CI friendly usage of ${..} which is already defined via property in pom file.
  • MNG-6057 – Problem with CI friendly usage of ${..} reactor order is changed
  • MNG-6090 – CI friendly properties break submodule builds
  • MNG-6170 – NPE in cases using Multithreaded -T X versions:set -DnewVersion=1.0-SNAPSHOT
  • MNG-6173 – MavenSession.getAllProjects() should return all projects in the reactor
  • MNG-6176 – Javadoc errors prevent release with Java 8
  • MNG-6177 – The —file command line option of the Windows and Unix launchers does not work for directory names like “Spaces & Special Char”
  • MNG-6180 – groupId has plain color when goal fails
  • MNG-6181 – HttpClient produces a lot of noise at debug loglevel
  • MNG-6183 – Dependency management debug message corrections.

Improvements:

  • MNG-6078 – Can’t overwrite properties which have been defined in .mvn/maven.config
  • MNG-6115 – Add Jansi native library search path to our start scripts to avoid extraction to temp file on each run
  • MNG-6179 – Remove unused prerequisites
  • MNG-6189 – WARN if maven-site-plugin configuration contains reportPlugins element

New Feature:

  • MNG-6182 – ModelResolver interface enhancement: addition of resolveModel( Dependency ) supporting version ranges

Enjoy,

  • The Apache Maven team

Asciidoctor Maven Plugin Version 1.5.5 Released

| Comments

This release aligns the maven plugin version to the latest version of AsciidoctorJ v1.5.5, and in turn Asciidoctor v1.5.5.

Thanks to all contributors! Improvements

Upgraded AsciidoctorJ version to 1.5.5, see AsciidoctorJ and Asciidoctor respective release notes for more details Upgraded JRuby to 1.7.26, note that using AsciidoctorJ-pdf v1.5.0-alpha.14 requires JRuby 9.1.8.0

  • #270 docinfo files are now excluded by default (@ge0ffrey)
  • #267 Enabled configuration of sourcemap, catalog_assets and template_cache options
  • #255 Added compatibility for AsciidoctorJ 1.6.0 extensions (@robertpanzer)
  • #253, #251, #247, #245, #243, #241 Many improvements and fixes in the maven plugin configuration, dependencies and build process (special thanks to @khmarbaise for his patience)
  • #227 Upgraded Netty and other project dependencies for Java9 compatibility (@Sanne)
  • #226 Added resource filtering option (choosing which resources to copy to target), see new ‘resources’ configuration option for details
  • #218 Improved how AsciidoctorJ is created for v1.6.0 compatibility (@mattadamson)
  • #223 Added Chinese version of the README (@diguage)
  • #209 Added support for command line options, see command-line-configuration for details Many, many documentation improvements (@ge0ffrey, @leif81, @dashorst)
  • #198 Improved behaviour when source directory is not found for multi-module configurations, instead of failing, plugin with now finish and show an informatime message (@Stummi)

Bug fixes

  • #252 Fixed an issue that disabled source-highlighting
  • #216 Fixed property name in ‘zip’ mojo (@ghusta)
  • #153 Fixed an issue that prevented GitHub urls from being included

Release Meta

Released on: 2017-03-17

Released by: @abelsromero

Soundtrack: Warszawa (Porcupine Tree)

Mojo Mock Repository Manager Plugin Version 1.0.1 Released

| Comments

Hi,

The MojoHaus team is pleased to announce the release of the Mock Repository Manager Maven Plugin version 1.0.1.

The Mock Repository Manager Plugin is used when you want to test Maven plugins against specific sets of dependencies in a repository.

To get this update, simply specify the version in your project’s plugin configuration:

1
2
3
4
5
<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>mrm-maven-plugin</artifactId>
  <version>1.0.1</version>
</plugin>

Release Notes – Mojo’s Mock Repository Manager – Version 1.0.1

Enjoy,

The MojoHaus team.

MojoHaus Exec Maven Plugin Version 1.6.0 Released

| Comments

The Mojo team is pleased to announce the release of the Exec Maven Plugin version 1.6.0.

The plugin helps with execution of system and Java programs.

To get this update, simply specify the version in your project’s plugin configuration:

1
2
3
4
5
<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>exec-maven-plugin</artifactId>
  <version>1.6.0</version>
</plugin>

The Release Notes are available via GitHub Issue Tracker

Enjoy,

The MojoHaus Team.

Apache Maven Version 3.5.0-alpha-1 Released

| Comments

The Apache Maven team would like to announce the release of Maven 3.5.0-alpha-1.

NOTE: This is an ALPHA release. There is the potential that features may be added/removed between this release and the first GA release in the 3.5.x release line. Please consult the Known Issues section below before use

You can download the appropriate sources, etc. from the archives section on the download page as Maven 3.3.9 is still the recommended GA release

https://archive.apache.org/dist/maven/maven-3/3.5.0-alpha-1/

Release Notes for 3.5.0-alpha-1.

Known Issues

The following issues were identified during release testing of this ALPHA release but have not been deemed as release blockers:

  • MNG-6177 The --file and -f option to specify a pom.xml to use does not work if the path includes characters that need quoting such as whitespace or &.
  • MNG-6115 If Maven is installed in a writable location, every build will create a new lib/ext/jansi-.... file.

Why not Maven 3.4.0?

After Maven 3.3.9 was released, the Eclipse Aether project was retired and the code base was migrated to the Apache Maven project.

The original goal for the 3.4.0 release was to replace Aether with the exact same code after migration to the Apache Maven project and then proceed with bug fixes to the resolver code as well as other areas of Maven.

The migration of the code between the two foundations took longer than expected and as a result there were other changes committed to Maven core that were outside the scope of intent for 3.4.0.

In order to refocus on the original intent for 3.4.0, the decision was taken to revert the Maven core history to the point of the 3.3.9 release and merge in the desired changes one at a time.

Because there had been a lot of communication about different features being delivered and bugs fixed in Maven 3.4.0 and the new history may not contain them in the first release, the decision was taken to forever burn the 3.4.x release line.

More detail on this decision can be read in the mailing list archive.

Apache Maven Archetype Plugin 3.0.0 Released

| Comments

The Apache Maven team is pleased to announce the release of the Apache Maven Archetype Plugin, version 3.0.0.

The Archetype Plugin allows the user to create a Maven project from an existing template called an archetype. It also allows the user to create an archetype from an existing project.

You can download the appropriate sources etc. from the download page.

You should specify the version in your project’s plugin configuration:

1
2
3
4
5
<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-archetype-plugin</artifactId>
  <version>3.0.0</version>
</plugin>

Maven 3: How Version Comparison Works?

| Comments

In the ancient time before maven 3 the version of an artifact had to follow the pattern:

1
<majorversion [> . <minorversion [> . <incrementalversion ] ] [> - <buildnumber | qualifier ]>

so far so good. Now let us assume we have the following two versions:

  • 1.0.9.3.1
  • 1.0.10.11

What would you expect which version is newer than the other or the older one? I suppose you would say: 1.0.9.3.1 is older than 1.0.10.11 or with other words: 1.0.10.11 is newer than 1.0.9.3.1 or to express it in a more mathematical way:

1
1.0.9.3.1 < 1.0.10.11

Or another example:

  • 1.0alpha10
  • 1.0alpha2

So I assume that you have expected that Maven 2 should have handled that like this:

1
1.0alpha10 > 1.0alpha2

Unfortunately Maven 2 had handled them different because the previous versions did not follow the above pattern which results into string based comparison of the versions and finally into the following result:

1
2
1.0.9.3.1 > 1.0.10.11
1.0alpha10 < 1.0alpha2

which is obviously not the result you have expected.

Maven 3

Starting with Maven 3 (released 2010!) the version comparison has been changed but unfortunately the above myth keeps tenaciously.

So the first thing is that you can use as many digits as you like and separate them by dots. This means the following versions are valid:

Version Version
2 1
1.1 1.0
1.2.3 1.2.1
1.2.3.4 1.2.2.4
1.4.5.7.9 1.4.5.60.9
1.2.30.4.5 1.2.2.4.5
1.0.10.11 1.0.9.3.1
1.0alpha10 1.0alpha2
1.0 1.0.0

Regarding the above list which version is mathematically greater, greater or equal, less than, less or equal than the other?

Version Version
2 > 1
1.1 > 1.0
1.2.3 > 1.2.1
1.2.3.4 > 1.2.2.4
1.4.5.7.9 < 1.4.5.60.9
1.2.30.4.5 > 1.2.2.4.5
1.0.10.11 > 1.0.9.3.1
1.0alpha10 > 1.0alpha2
1.0 = 1.0.0

So what about things like 1.6.0-RC1 ? Let us assume we have the following versions:

  • 1.6.0
  • 1.6.0-RC1

So how does the comparison result look like? If you think a little you might already know the solution. The 1.6.0-RC1 is of course older than 1.6.0 or expressed mathematically:

1
1.6.0-RC1 < 1.6.0

This is because a release candidate is created before the final 1.6.0 release. So other things could be concluded out of the above like this:

1
2
1.6.0-RC3 < 1.6.0-RC10 < 1.6.0
2.34.5.6-RC3 < 2.34.5.6-RC10 < 2.34.5.6

So what about things like milestones: 1.6.0-m1?

1
1.6.0-m1 < 1.6.0 

which is this way based on the assumption made above. Milestones are before the final releases. So of course you can conclude ordering of milestones like this:

1
2
1.6.0-m1 < 1.6.0-m4
1.6.0-m4 < 1.6.0-m10

The above is also valid for the cases where we separate the milestone via a dot instead of a dash.

1
2
1.6.0.m1 < 1.6.0.m4
1.6.0.m4 < 1.6.0.m10

You can do things like the following if you like:

1
1.6.0-m1.9.9.11 < 1.6.0-m1.9.10.11

So now we come to an important thing, if we compare the following two versions 1.6.0-m1 with 1.6.0.m1. On the first glance you might think those two versions are equal because they describe a milestone with the same version 1.6.0. The result of the comparison in Maven is different:

1
1.6.0-m1 < 1.6.0.m1

This means in consequence that a part which is separated via - is less important than a part wich is separated via ., or the part which is separated via . has precedence over the part which is separated via -.

Snapshots

We have only considered releases yet. So now let us take a look at SNAPSHOTs. So let us try to see which version is before the other one in case of such version 1.6.0-SNASPHOT and 1.6.0.m1? So you might already know the result. The SNAPSHOT version is before the other one 1.6.0.m1 cause a SNAPSHOT means there has no release before of 1.6.0.

You can add the -SNAPSHOT part to each of the above examples but the results will keep the same.

Experiments

If you like to experiment with some of the above examples or check your ideas you can simply use your existing(?) Maven installation for this. Starting with Maven 3.2.5 there is a command line interface which can show you the comparision results for versions given on the command line like this:

1
java -jar apache-maven-3.2.5/lib/maven-artifact-3.2.5.jar 1.6.0 1.6.0.m1

The output will look similar like this:

1
2
3
4
Display parameters as parsed by Maven (in canonical form) and comparison result:
1. 1.6.0 == 1.6
   1.6.0 > 1.6.0-rc1
2. 1.6.0-rc1 == 1.6-rc-1

MojoHaus Build Helper Maven Plugin Version 3.0.0 Released

| Comments

The MojoHaus team is pleased to announce the release of the Build Helper Maven Plugin Version 3.0.0.

This plugin contains various small independent goals to assist with Maven build lifecycle.

To get this update, simply specify the version in your project’s plugin configuration:

1
2
3
4
5
<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>build-helper-maven-plugin</artifactId>
  <version>3.0.0</version>
</plugin>

Apache Maven Wagon Version 2.12 Released

| Comments

The Apache Maven team is pleased to announce the release of Apache Maven Wagon 2.12.

Apache Maven Wagon is a transport abstraction that is used in Maven’s artifact and repository handling code.

Release Notes – Maven Wagon – Version 2.12.

Bugs:

  • WAGON-408 – ITs for #testSecuredGet() fail with Windows
  • WAGON-426 – Fingerprints loss in known_hosts
  • WAGON-439 – Jsch issue in java 1.7 and Kerberos-enabled ssh servers
  • WAGON-449 – CLIENT not changed after setting PoolingHttpClientConnectionManager
  • WAGON-469 – wagon-http does not enable Expect-Continue by default
  • WAGON-475 – TransferEvent GET used instead of PUT and vice versa
  • WAGON-476 – HTTP Provider follows redirects on PUT and may change request method
  • WAGON-479 – Preemptive auth with HTTP Provider may fail because BasicScheme is added as completed=true to the AuthCache
  • WAGON-480 – Non-threadsafe HttpClientContext is shared between threaded use of HttpClientWagon
  • WAGON-481 – Sensitive (auth) information is not cleared when HttpClientWagon is disconnected
  • WAGON-485 – ScpWagon parses file size to int causing overflow for large files

Improvements:

  • WAGON-455 – Upgrade of ‘plexus-utils’ to version 3.0.23.
  • WAGON-458 – Implementation for FTPS
  • WAGON-460 – Upgrade plexus-utils to 3.0.24
  • WAGON-464 – Upgrade jsch dependency to 0.1.51 or newer to support ECDSA host key typess
  • WAGON-465 – wagon-ssh: add API option to check for remote exit code
  • WAGON-466 – wagon-ssh: Better error message when ssh account is locked
  • WAGON-467 – wagon-ssh: options to configure hostKeyChecking and PreferredAuthentications
  • WAGON-472 – Upgrade Commons IO to 2.5
  • WAGON-484 – Update WebDAV Provider naming

Tasks:

  • WAGON-389 – Incorrect versions on gh-pages
  • WAGON-447 – Remove Commons Lang 2 for a few cases
  • WAGON-457 – Wagon tests fail on Windows because Subversion crashes on a test repo
  • WAGON-470 – Update TLS certificates for HTTPS tests
  • WAGON-471 – Clean up dependency mess (reported by dependency:analyze)
  • WAGON-473 – Don’t abuse IllegalArgumentException to intercept null input
  • WAGON-474 – Upgrade and revise all tests for Jetty 8
  • WAGON-483 – Upgrade SLF4J to 1.7.22

Enjoy,

-The Apache Maven team