Discussion:
[ANN] Maven Jar Plugin 2.2 for Maven 2 Released
Olivier Lamy
2008-01-16 15:04:31 UTC
Permalink
The Maven team is pleased to announce the release of the Maven Jar
Plugin, version 2.2.

http://maven.apache.org/plugins/maven-jar-plugin/

You can run mvn -up to get the latest version of the plugin, or
specify the version in your project's plugin configuration:

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.2</version>
</plugin>

Release Notes - Maven 2.x Jar Plugin - Version 2.2


** Bug
* [MJAR-49] - Jarsigner fails on windows due to spaces in pathnames
* [MJAR-50] - "Invalid Header" in jar's Manifest
(Specification-Title attribute) when tab char in pom Description
* [MJAR-57] - Specification and Implementation details missing from manifest
* [MJAR-59] - Impossible to create empty entries in MANIFEST
* [MJAR-60] - Adding directories to manifest classpath entry is not possible
* [MJAR-75] - [PATCH] Wrong artifact type attached to the project
by the test-jar goal
* [MJAR-77] - Link to MavenArchiveConfiguration javadoc is broken
* [MJAR-78] - jar:sign skip option does not work
* [MJAR-79] - META-INF/persistence.xml excluded from artifact when
index=true
* [MJAR-80] - excludes is not working for maven-jar-plugin
* [MJAR-83] - addClasspath is not respected for runtime dependencies
* [MJAR-88] - use maven-invoker-plugin instead of maven-embedder
for it tests
* [MJAR-90] - when maven.test.Skip is set, the test-jar artifact is empty

** Improvement
* [MJAR-30] - Allow includes/excludes specification
* [MJAR-51] - handle signing jars which are not project artifacts
and not "in place" signing
* [MJAR-58] - Update Jar Plugin Documentation (more examples for
manifest customization)
* [MJAR-64] - jar:jar ignores command line argument -DfinalName=xxx
* [MJAR-70] - Ability to skip jar recreation if any of resources
are older than existing jar
* [MJAR-71] - use manifest in classesdir/META-INF if exists
* [MJAR-74] - Upgrade maven-archiver dependency to 2.3-SNAPSHOT
* [MJAR-82] - Class-Path manifest entry should support maven
repository layout

** New Feature
* [MJAR-84] - Need ability to not attach a jar when not signing in place
* [MJAR-86] - Jarsigner option 'storetype' not supported by the plugin

** Task
* [MJAR-89] - release maven-invoker-plugin
* [MJAR-91] - release maven-archiver
* [MJAR-92] - release plexus-utils 1.4.9

Enjoy,

-The Maven team
Steinar Bang
2008-01-28 09:44:11 UTC
Permalink
Post by Olivier Lamy
* [MJAR-90] - when maven.test.Skip is set, the test-jar artifact is empty
The fix is to make no test-jar on maven.test.skip.

This fix may have created a new bug, but I'm unsure of which plugin has
the bug (ie. what plugin to report it on). Is it maven-surefire-plugin
or maven-dependency-plugin=

I cleaned up my repo today to build our project from scratch. And then
it failed on "mvn clean install -Dmaven.test.skip" on dependencies with
<scope>test</scope>
<type>test-jar</type>

The reason they failed are because the test-jar files are no longer
present. But since they have <scope>test</scope> they shouldn't be
resolved with "-Dmaven.test.skip". Or at least I think they shouldn't.

(we have some test cross dependencies, that makes it neccessary to run
through with maven.test.skip before we run with tests)
Olivier Lamy
2008-01-28 10:23:59 UTC
Permalink
Hi,
In order to save your fingers :-), you can use -DskipTests (with surefire 2.4)
This will compile test classes but not execute units.

--
Olivier
Post by Steinar Bang
Post by Olivier Lamy
* [MJAR-90] - when maven.test.Skip is set, the test-jar artifact is empty
The fix is to make no test-jar on maven.test.skip.
This fix may have created a new bug, but I'm unsure of which plugin has
the bug (ie. what plugin to report it on). Is it maven-surefire-plugin
or maven-dependency-plugin=
I cleaned up my repo today to build our project from scratch. And then
it failed on "mvn clean install -Dmaven.test.skip" on dependencies with
<scope>test</scope>
<type>test-jar</type>
The reason they failed are because the test-jar files are no longer
present. But since they have <scope>test</scope> they shouldn't be
resolved with "-Dmaven.test.skip". Or at least I think they shouldn't.
(we have some test cross dependencies, that makes it neccessary to run
through with maven.test.skip before we run with tests)
---------------------------------------------------------------------
Steinar Bang
2008-01-28 10:44:10 UTC
Permalink
Post by Olivier Lamy
In order to save your fingers :-), you can use -DskipTests (with
surefire 2.4) This will compile test classes but not execute units.
Thanx! In addition to saving my fingers from typing, it seems to have
the effect that I don't get the dependency failures.

So... I won't have to try out any of the workarounds I pondered during
lunch...:-) (either removing the <scope>test</scope> dependencies, or
locking maven-jar-plugin to version 2.1 in the top POM)

Thanx again!
Steinar Bang
2008-01-28 10:48:28 UTC
Permalink
Post by Steinar Bang
Post by Olivier Lamy
In order to save your fingers :-), you can use -DskipTests (with
surefire 2.4) This will compile test classes but not execute units.
Thanx! In addition to saving my fingers from typing, it seems to have
the effect that I don't get the dependency failures.
Hmno... it seems to be stuck in the same sink hole it gets stuck in,
when I try using -Dmaven.test.failure.ignore. It gets a lot of
compilation errors caused by missing symbols, and then the build just
hangs.
Post by Steinar Bang
So... I won't have to try out any of the workarounds I pondered during
lunch...:-) (either removing the <scope>test</scope> dependencies, or
locking maven-jar-plugin to version 2.1 in the top POM)
Locking maven-jar-plugin to version 2.1 seems to be the least intrusive
approach. I'll try that first.
Steinar Bang
2008-01-28 11:32:30 UTC
Permalink
Post by Steinar Bang
Locking maven-jar-plugin to version 2.1 seems to be the least
intrusive approach. I'll try that first.
But how do I do that. Just putting
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.1</version>
</plugin>
in the top pom, makes 2.1 be pulled into the local maven repo, but
that's in addition to 2.2, and I still get the missing test-jar issue.
So it probably still uses 2.2.

Do I have to introduce this setting into all POMs with
<packaging>jar</packaging>?
Steinar Bang
2008-01-28 13:36:21 UTC
Permalink
Post by Steinar Bang
Post by Steinar Bang
Post by Olivier Lamy
In order to save your fingers :-), you can use -DskipTests (with
surefire 2.4) This will compile test classes but not execute units.
Thanx! In addition to saving my fingers from typing, it seems to have
the effect that I don't get the dependency failures.
Hmno... it seems to be stuck in the same sink hole it gets stuck in,
when I try using -Dmaven.test.failure.ignore. It gets a lot of
compilation errors caused by missing symbols, and then the build just
hangs.
The reason it got stuck was that many POMs had explicit
maven-surefire-plugin configs, locking to <version>2.3</version>.

A residue from a workaround from some earlier problem if I recall
correctly.

Removing those settings makes
maven clean install -DskipTests
run through without failing (because it builds the test jars, and the
dependencies are satisfied, presumably...?).

Loading...