> ---------- Forwarded message ---------- > From: Deepesh Garg <deepes...@gmail.com> > To: dev@maven.apache.org > Cc: > Date: Wed, 21 Dec 2011 14:28:33 +0000 > Subject: Using maven as appstore for java app > Hi, > I was wondering if maven repository structure can be exploited to also > distribute java applications. Same repository structure may be used on > client side for installing and launching java apps. I see many benefit in > doing so (cleaner application packaging, minimum download, standard > directory structure, simple upgrade (much like Debian)). > Are there any good reasons why maven should not be used as application > installer and launcher? Or is it already done and I slept a bit too much. > > Deepesh > > > ---------- Forwarded message ---------- > From: Wayne Fay <wayne...@gmail.com> > To: Maven Developers List <dev@maven.apache.org> > Cc: > Date: Wed, 21 Dec 2011 10:50:17 -0600 > Subject: Re: Using maven as appstore for java app > > I was wondering if maven repository structure can be exploited to also > > distribute java applications. Same repository structure may be used on > > I'm sure this is already happening in some firms. You may find the > Codehaus Mojo appassembler project [1] and/or the Webstart project [2] > to be helpful in this regard. > > What are you specifically thinking about? > > [1] http://mojo.codehaus.org/appassembler/ > [2] http://mojo.codehaus.org/webstart/ > > Wayne > > > > ---------- Forwarded message ---------- > From: Brett Porter <br...@apache.org> > To: "Maven Developers List" <dev@maven.apache.org> > Cc: > Date: Thu, 22 Dec 2011 07:05:31 +1100 > Subject: Re: Using maven as appstore for java app > As Wayne suggested, you can use Maven to assemble and distribute an > application. > > For a runtime, using a maven repository makes a lot of sense. I wouldn't > use Maven itself for this, but Maven's libraries for interacting with a > repository. > > This is being used in lots of other applications, for example: > http://karaf.apache.org/manual/latest-2.2.x/users-guide/provisioning.html > > - Brett >
This is what I have in mind: 1) Have a new packaging type which indicate that this is an installable application. Pom file for such apps can include things like description, display name, icon file, location to put application launchers, type of application (desktop app, mobile app, online app(?), GUI based/command line etc).. 2) Create a maven goal to search configured repositories using criteria specified in options (packaging type, artifact id, wildcard text search in description etc). This function is useful on its own and in this case can be used to search installable applications in repository. 3) Create a maven goal to install app. This will read pom description and create application icons etc (this function will depend on platform and will do whatever is required for current platform. Like for Linux it can create .desktop files in specific directories or for Windows it can create shortcuts in start menu.). This goal can also generate command line to launch the application including all dependencies in classpath. This way maven itself will not be required to launch the app but will still use repository (as suggested by Brett). 4) Once the command line tools are available, a nice GUI wrapper can be provided to search repositories for installable apps and install and uninstall apps. This way maven repositories can also serve the function of app store and I think it won't require too much effort as all the hard work is already done. Deepesh PS: Couldn't find a way to reply to this thread so subscribed to the list and fetched the thread by mailing to dev-thread.100...@maven.apache.org(Where can you find this message id? I had to kind of guess it). Apologies if this mail looks ugly and doesn't link to original thread.