What's new in XMvn 0.5.0
* Major features
* XMvn Subst
Version 0.5.0 brings a new tool - XMvn Subst. This tool is able to replace individual artifact files with symbolic links to corresponding files in system artifact repository. It is also able to recursively process whole directories.
* XMvn Bisect
Since version 0.5.0 a new tool - XMvn Bisect - is available. This tool helps automating debugging build failures using bisection method. It first builds project using dependencies coming from system repository only, next only from remote repositories, then halves dependency set recursively until it finds differences which are causing build failure.
* Minor features
* Basic support for dependency version ranges
In previous versions XMvn did not support dependency version ranges. If range was used in POM then Maven would try to resolve all available versions from remote repository and pick the best match.
Starting from XMvn 0.5.0 any dependency version ranges without recommended version specified are replaced with version <<<SYSTEM>>>, which means default artifact version in the system. This prevents Maven from trying to use remote repositories.
* Improved configuration loading
Starting from version 0.5.0 configuration is read only once at the beginning of the build. In previous versions configuration was read every time it was needed. The new approach is not only faster, but also allows configuration to be modified by plugins during runtime.
* Better handling of inaccurate configuration
In previous versions any packaging rules that didn't match any artifact in the reactor were silently ignored. Since version 0.5.0 any non-optional packaging rule that is not used causes the build to fail.
* Minor bugfixes
* Incorrect path to JPP artifacts
Paths to JPP artifacts containing more than one slash in groupId were generated incorrectly. This could cause dependency resolution failures in some rare cases. This bug was fixed in version 0.5.0.
* Fixed exit code of XMvn Resolve
Now <<<xmvn-resolve>>> returns 0 when it successfully resolves all artifacts, 1 on failure to resolve one or more artifacts and 2 when some other error occurs. In the last case a stack trace is printed too.
* Fixed installation of artifact marked as not installable
Before version 0.5.0 XMvn tried to find installers for all artifacts in the reactor, even for those marked as not installable. As a result reactors that contained artifacts with unsupported packaging types failed to build, even if instalation of these artifacts was explicitly skipped.
This bug was fixed in XMvn 0.5.0, in which artifact packaging type has to be supported only if the artifact is installable.
On 24 May 2013 09:20, Mikolaj Izdebski mizdebsk@redhat.com wrote:
What's new in XMvn 0.5.0
Major features
XMvn Subst
Version 0.5.0 brings a new tool - XMvn Subst. This tool is able to replace individual artifact files with symbolic links to corresponding files in system artifact repository. It is also able to recursively process whole directories.
Neat. Is this intended to replace the old build-jar-repository tool?
Major features
XMvn Subst
Version 0.5.0 brings a new tool - XMvn Subst. This tool is able to replace individual artifact files with symbolic links to corresponding files in system artifact repository. It is also able to recursively process whole directories.
Neat. Is this intended to replace the old build-jar-repository tool?
Yes, that's one of use cases, but there are some limitations. JARs being replaced must be built with Maven (they need to have pom.properties file which specified groupId/artifactId/version), so XMvn Subst won't be able to replace JARs built with Ant, for example.
Example usage:
$ xmvn-subst --help xmvn-subst: Substitute artifact files with symbolic links
Usage: xmvn-subst [options] Options: -X, --debug Display debugging information Default: false -L, --follow-symlinks Follow symbolic links when traversing directory structure Default: false -h, --help Display usage information Default: false -t, --type Consider artifacts with given type Default: [jar, war] -D Define system property Syntax: -Dkey=value Default: {}
$ ls -go total 1816 -rw-rw-r--. 1 44598 May 24 10:12 commons-logging-api-1.1.jar -rw-rw-r--. 1 639592 May 24 10:12 google-collections-1.0.jar -rw-rw-r--. 1 60376 May 24 10:12 jcommander-1.30.jar -rw-rw-r--. 1 358085 May 24 10:12 log4j-1.2.12.jar -rw-rw-r--. 1 46969 May 24 10:12 plexus-classworlds-2.4.2.jar -rw-rw-r--. 1 4211 May 24 10:12 plexus-component-annotations-1.5.5.jar -rw-rw-r--. 1 216640 May 24 10:12 plexus-container-default-1.5.5.jar -rw-rw-r--. 1 230883 May 24 10:12 plexus-utils-3.0.10.jar -rw-rw-r--. 1 133826 May 24 10:12 xbean-reflect-3.4.jar -rw-rw-r--. 1 98207 May 24 10:12 xmvn-core-0.5.0.jar -rw-rw-r--. 1 5778 May 24 10:12 xmvn-resolve-0.5.0.jar
$ xmvn-subst . [INFO] Linked ./xmvn-resolve-0.5.0.jar to /usr/share/java/xmvn/xmvn-resolve.jar [INFO] Skipping file ./commons-logging-api-1.1.jar: No artifact definition found [INFO] Linked ./plexus-utils-3.0.10.jar to /usr/share/java/plexus/utils.jar [INFO] Linked ./xbean-reflect-3.4.jar to /usr/share/java/xbean/xbean-reflect.jar [INFO] Linked ./plexus-classworlds-2.4.2.jar to /usr/share/java/plexus/classworlds.jar [INFO] Linked ./plexus-container-default-1.5.5.jar to /usr/share/java/plexus/containers-container-default.jar [INFO] Linked ./google-collections-1.0.jar to /usr/share/java/guava.jar [INFO] Linked ./xmvn-resolve-0.5.0.jar to /usr/share/java/xmvn/xmvn-resolve.jar [INFO] Skipping file ./commons-logging-api-1.1.jar: No artifact definition found
$ ls -go total 396 -rw-rw-r--. 1 44598 May 24 10:12 commons-logging-api-1.1.jar lrwxrwxrwx. 1 25 May 24 11:18 google-collections-1.0.jar -> /usr/share/java/guava.jar lrwxrwxrwx. 1 36 May 24 11:18 jcommander-1.30.jar -> /usr/share/java/beust-jcommander.jar -rw-rw-r--. 1 358085 May 24 10:12 log4j-1.2.12.jar lrwxrwxrwx. 1 38 May 24 11:18 plexus-classworlds-2.4.2.jar -> /usr/share/java/plexus/classworlds.jar lrwxrwxrwx. 1 59 May 24 11:18 plexus-component-annotations-1.5.5.jar -> /usr/share/java/plexus/containers-component-annotations.jar lrwxrwxrwx. 1 55 May 24 11:18 plexus-container-default-1.5.5.jar -> /usr/share/java/plexus/containers-container-default.jar lrwxrwxrwx. 1 32 May 24 11:18 plexus-utils-3.0.10.jar -> /usr/share/java/plexus/utils.jar lrwxrwxrwx. 1 39 May 24 11:18 xbean-reflect-3.4.jar -> /usr/share/java/xbean/xbean-reflect.jar lrwxrwxrwx. 1 34 May 24 11:18 xmvn-core-0.5.0.jar -> /usr/share/java/xmvn/xmvn-core.jar lrwxrwxrwx. 1 37 May 24 11:18 xmvn-resolve-0.5.0.jar -> /usr/share/java/xmvn/xmvn-resolve.jar
Note that commons-logging-api-1.1.jar and log4j-1.2.12.jar were not replaced. This is expected.
I have updated current rawhide/F19 version to 0.5.0 (including buildroot override) so you should be able to start using new features right away.
If you have time, giving karma for bodhi update[1] will be appreciated as well (both positive and negative in case of regressions).
eS
[1] https://admin.fedoraproject.org/updates/xmvn-0.5.0-1.fc19 Quoting Mikolaj Izdebski (2013-05-24 10:20:45)
What's new in XMvn 0.5.0
Major features
XMvn Subst
Version 0.5.0 brings a new tool - XMvn Subst. This tool is able to replace individual artifact files with symbolic links to corresponding files in system artifact repository. It is also able to recursively process whole directories.
XMvn Bisect
Since version 0.5.0 a new tool - XMvn Bisect - is available. This tool helps automating debugging build failures using bisection method. It first builds project using dependencies coming from system repository only, next only from remote repositories, then halves dependency set recursively until it finds differences which are causing build failure.
Minor features
Basic support for dependency version ranges
In previous versions XMvn did not support dependency version ranges. If range was used in POM then Maven would try to resolve all available versions from remote repository and pick the best match.
Starting from XMvn 0.5.0 any dependency version ranges without recommended version specified are replaced with version <<<SYSTEM>>>, which means default artifact version in the system. This prevents Maven from trying to use remote repositories.
Improved configuration loading
Starting from version 0.5.0 configuration is read only once at the beginning of the build. In previous versions configuration was read every time it was needed. The new approach is not only faster, but also allows configuration to be modified by plugins during runtime.
Better handling of inaccurate configuration
In previous versions any packaging rules that didn't match any artifact in the reactor were silently ignored. Since version 0.5.0 any non-optional packaging rule that is not used causes the build to fail.
Minor bugfixes
Incorrect path to JPP artifacts
Paths to JPP artifacts containing more than one slash in groupId were generated incorrectly. This could cause dependency resolution failures in some rare cases. This bug was fixed in version 0.5.0.
Fixed exit code of XMvn Resolve
Now <<<xmvn-resolve>>> returns 0 when it successfully resolves all artifacts, 1 on failure to resolve one or more artifacts and 2 when some other error occurs. In the last case a stack trace is printed too.
Fixed installation of artifact marked as not installable
Before version 0.5.0 XMvn tried to find installers for all artifacts in the reactor, even for those marked as not installable. As a result reactors that contained artifacts with unsupported packaging types failed to build, even if instalation of these artifacts was explicitly skipped.
This bug was fixed in XMvn 0.5.0, in which artifact packaging type has to be supported only if the artifact is installable.
-- Mikolaj Izdebski IRC: mizdebsk -- java-devel mailing list java-devel@lists.fedoraproject.org https://admin.fedoraproject.org/mailman/listinfo/java-devel
Quoting Stanislav Ochotnicky (2013-05-24 15:42:31)
I have updated current rawhide/F19 version to 0.5.0 (including buildroot override) so you should be able to start using new features right away.
If you have time, giving karma for bodhi update[1] will be appreciated as well (both positive and negative in case of regressions).
eS
[1] https://admin.fedoraproject.org/updates/xmvn-0.5.0-1.fc19
There was a NPE and upgrade path issue so the bodhi URL is now: https://admin.fedoraproject.org/updates/xmvn-0.5.0-2.fc19
java-devel@lists.fedoraproject.org