General remark:
Software deployment is a huge area, and deployment of software that combines multiple technologies / frameworks has additional complexities - so there is no general answer. Still, I'll try to give some pointers as to what can be done.
- There are various deployment technologies. They mostly fall in two groups:
- some are part of a framework or language/runtime (such as Maven [see caveat below], JavaEE WARs or Web Deploy for Internet Information Server)
- some are part of a platform/OS (such as Debian or RPM packages on Linux, or Windows Installer files (
.msi
) on Microsoft Windows)
- Usually you choose a deployment approach from one of the two groups above - either you use the tech for the language/framework you use, or one for (each of) the target platform(s). For large projects, sometimes different compoments will use different technologies - for example the rich client may use a Windows Installer file, while the server is a Debian package.
- If your whole project uses one language/framework, often using the matching deployment technology is the easiest solution. If you use multiple languages/frameworks, as in your example, you'll have to use a deployment tech for your platform - so if you want to deploy to multiple platforms, you'll have to use one tool per platform.
To address your points in detail:
I'm aware that, Java application can be built and deployed using Maven
Actually, not quite - while Maven does have a "deploy" step, in Maven "deploy" means copying an artifact to Maven's internal repository, while in general "deploy" means installing a finished application in a way that it can be used. While Maven does allow you to create ready-to-run (mostly) files, it is not a complete deployment technology.
while .Net can be built using MSBuild and packaging can be done using
Install shield.
Yes, that would be an example of a platform-specific technology - in this case InstallShield, which is for Microsoft Windows.
Will they go as independent artifacts to the customers
or will they be integrated/merged to go as a single product. I really
cant understand how it works.
Again, this depends, but typically the various bits&pieces will be packaged as one installation file, to make deployment as simple as possible. Multiple components will usually be package separately (in particular, it usually does not make sense to package client and server together for a client/server system).
However, note that not everyone pays the same attention to a nice deployment experience. Some software, even expensive commercial systems, are notoriously difficult to install - for example Oracle databases and SAP are (used to be?) notorious for this.