Appreciate your response. On 22 December 2011 13:51, Jesse Farinacci <jie...@gmail.com> wrote:
> Greetings, > > On Thu, Dec 22, 2011 at 5:34 AM, Deepesh Garg <deepes...@gmail.com> wrote: > > > 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).. > > > > Please, I beg of you, do not create yet another installation format. Before > you do this, justify not using RPM/DEB or MSI, whichever applies for your > target environments. All of which, yes even MSI, are far better than > anything you are likely to create. > > I share your pain, but couldn't find anything close when it comes to installing java apps. I realize now that the problem is not that of not having a install format but not having a standard way of installing jars. Maven repository structure seems like a good way of filling that gap. C libraries, dlls, python modules, perl modules they all have their nice standard "home" to install, but for jars I don't know of any. For example if some application depends on SDL, or pygame or Perl DBI can those be specified as dependencies in your deb/rpm? Yes. If some java application depends on common apache libraries or spring jars, can those be specified in deb/rpm as dependencies? No. I see no other way but to package these jars with the app. > 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. > > > > This is totally outside the scope of Maven, and frankly I don't really > foresee it as being generally useful in any way. Who wants to type out "" > mvn package:search -Dpackage=rpm -Ddescription=\*angry\ birds\* "" when > they can just fire up a new chromium tab and Google search it? > > Agree. > > 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). > > > > Again, please don't do this! There are already great tools to manage > packages, see my response to 1) above, then read the manual for yum/apt-get > and whatever M$ has for MSI files. Again, all of which, yes even MSI, are > far better than anything you are likely to create. > > > Agree > > 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. > > > > The tools to do this already exist. See the GUI front ends for all the > tools I already mentioned for further reference. > > > > 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. > > > > Allowing a Maven Repository Manager (MRM) to perform as a target RPM/DEB > repository, or MSI storage shed, is a positive thing. Unfortunately, that > isn't what you describe though, you keep saying a Maven repository, which > isn't quite the same thing. > > At least 1 MRM already has the ability to do this: > https://code.google.com/p/nexus-yum-plugin/ > My mistake. Though I do mean maven repository when I say that local maven repository can double as the place to install dependencies for java application. > -Jesse > > -- > There are 10 types of people in this world, those > that can read binary and those that can not. > Deepesh -- I am the 10nd type.