Question says it all, I believe.
Please and thank you
GC
Question says it all, I believe.
Please and thank you
GC
The Maven assembly plugin is dedicated to create highly customizable package, such as zip, tgz... files. You define, in a descriptor, the content of the final package (or assembly), by including files, directories, dependencies, etc.
The Maven release plugin is dedicated to the release process, which includes several repetitive manipulations and operations. For example it will do some checks (is there any uncommited changes, some SNAPSHOT
libraries used and so on), prepare your Source Control Management (CVS, Subversion...), modify the pom
versions (to get rid of the -SNAPSHOT
), commit the modified pom.xml
, etc.
You can have an example of a release process here.
EDIT
Regarding your question about -SNAPSHOT
. For Maven, a fixed version is linked to a dependency that never changes. For example, two libraries with the same fixed version must be identical. So for example, foo:bar:1.2.3
is strictly identical to another foo:bar:1.2.3
This is not necessarily the case for a -SNAPSHOT
version. The SNAPSHOT
keyword indicates that the current library is under development. Thus, two versions of foo:bar:1.2.3-SNAPSHOT
and foo:bar:1.2.3-SNAPSHOT
may not be identical. A timestamp is used by Maven to check which one is the newest.
So in the normal release process, you have your 1.2.3-SNAPSHOT
version, which is not in development anymore. So before releasing this library, you will have to fix the version, i.e. move your pom.xml
version to 1.2.3
.
This modification can be done by simply modifying the pom.xml
versions, or it can be managed by the Maven release plugin
(or also with the Maven version plugin).
I hope the explanations are now clear regarding this particular aspect of Maven.