You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by John Allen <jo...@hotmail.com> on 2005/11/22 23:14:43 UTC

Re: m2 developers rfc: The assembly plugin ans thirdparty installation builders

Vincent,

Thanks for your work on this, it works a treat :)

There's a trivial patch required to fix report download URLs but otherwise 
we're there.

Thanks again for your efforts.

Cheers,

John


WDYT about this http://jira.codehaus.org/browse/MNG-1643
Thanks.

Cheers,

Vincent

2005/11/19, Vincent Siveton <vi...@...>:
>Hi,
>
>I totally agree with Dan: an installer is a kind of archiver.
>So, we need to create an InstallerArchiver class and implement 
>createArchive().
>
>I think we could easily update the assembly plugin to support
>installer feature. In the assembly descriptor, we just need to add new
>format (eg nsi, innosetup...) and to update the AbstractAssemblyMojo
>class to handle these new formats in the createArchiver() method.
>
>IMHO to create an installer, we need to :
>* create a script: we could easily generate a script with
>plexus-Velocity component. I imagine out-of box templates for NSIS and
>InnoSetup. Of course, the user could define his own template and
>template properties for a specific format (ie 'ownInstaller' format
>instead of 'nsi' in the AbstractAssemblyMojo class).
>* create the installer (I mean the .exe file). In fact, the user could
>define the compiler path (ie C:/Program Files/NSIS/makensis.exe) and
>the third party do the job.
>
>I'm pretty sure all this needs to be refined but it is a first step.
>
>WDYT?
>
>Cheers,
>
>Vincent
>
>
>2005/11/18, dan tran <da...@...>:
> > Hi John, I have special interest in making a assembly out of some type
> > installer aswell.
> > So I will answer base on what have worked on maven-assembly-plugin
> >  First, from my impression, plexus-archiver is interface we want to
> > implement for installers
> > ( it is just an another kind of archiver). So the user just need to 
>setup
> > the assembly
> > and the nullsoft archiver will handle the rest.
> >  There is a jira that will make the assembly deployable, perhaps has its 
>own
> > lifecycle like you have stated.
> >  While waiting for more answer, I would suggest to implement
> > deployable-assembly-plugin
> > with its own lifecyle (package type). The plugin would issue a 
>Commandline
> > to exec mvn assembly:assembly.
> > The lifecyle then take care of setting up the output of the assembly so 
>that
> > install and deploy can do the rest.
> > However this implementation is limited since it can only hanle one 
>archive
> > type.
> >  -Dan
> >
> >  On 11/18/05, John Allen <jo...@...> wrote:
> > >
> > > Hi,
> > >
> > > This is a reposting looking for comments from m2 developers.
> > >
> > >
> > > I am in the process of writing a NullSoft Installer plugin and wish to
> > > discuss its design and usage in respect to the assembler plugin.
> > >
> > > The assembly plugin has been designed to operate in a stand-alone 
>fashion,
> > > firing off the project's package build, rather than cooperate within 
>an
> > > existing lifecycle (@execute package declaration)
> > >
> > > This design choice confuses me a little as i would have thought that a
> > > distribution assembled project should just be another lifecycle phase 
>of a
> > > project (admittedly a rather later one) and should be invoked by the
> > > normal
> > > project build control but I guess the thinking was that assembly was
> > > something that you'd do rarely and would therefore would be best 
>invoked
> > > via
> > > an explicit '#mvn assembly:assembly' invocation, and that the 
>resulting
> > > 'assembly-packaged' artefact(s) (directory/.zip/etc), would not be of 
>any
> > > use to any other build lifecycle component.
> > >
> > > However the assembly:directory plugin performs the very useful job of
> > > preparing a distribution area which is exactly the kind of thing a
> > > thirdparty installer will need done before they can generate a custom
> > > distribution (i.e. a NSIS installer exe).
> > >
> > > Which leads me to the design questions regarding NSIS plugin.
> > >
> > > Should the assembly zip or tar be any different to the NSIS-exe 
>archive?
> > > Semantically they are the same, a package that is interpreted by an
> > > external
> > > agent (winzip/tar, or the OS in the case of an exe)
> > >
> > > I see the steps for building a distribution to be:
> > >
> > > *) build required distribution artefacts
> > > *) prepare a distribution area (layout the directory structure, copy 
>in
> > > deps
> > > etc)
> > > *) generate distribution media (zip, bzip, NSIS-exe)
> > >
> > > If running assmbly:assembly is to remain the way of initiating the
> > > distribution packaging for a project should the NSIS executable just 
>be a
> > > type of complex archiver that's configured as part of the assembly 
>plugin?
> > >
> > > Or should assembly plugin be made to be lifecycle cooperating so it 
>can be
> > > integrated into wider 'distribution build' that would employ the 
>assembly
> > > followed by the NSIS packager?
> > >
> > > Or should a NSIS exe be a project packaging type in its own right, and 
>a
> > > separate project be used to assemble and generate the resulting exe 
>(in
> > > which case the assembly:directory functionality would still be 
>required
> > > but
> > > that
> > > can be easily done with some refactoring to the assembly mojos 
>(MNG-1462
> > > has
> > > done this)).
> > >
> > > So... whats the thinking behind the assembly plugin and its @execution
> > > package design and how should assembly be integrated with other
> > > distribution
> > > packagers?
> > >
> > > Thanks for your time.
> > >
> > > John
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: dev-unsubscribe@...
> > > For additional commands, e-mail: dev-help@...
> > >
> > >
> >
> >
>



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org