Building and automating packaging of software can be a challenging task. As the complexity of the project grows so do the dependencies on third-party artifacts. Using Maven we can define and manage the project structure centrally and it helps improve overall build times.
Codeship is very well suited to teams that have specialized devops members along with other specialized developers. It lets the other developers focus on what they do best, without having to learn another technology stack. This has cut down on a lot of headaches at our company with developers needing to deploy code to various different hosting services across different content management systems. The experience to push code is essentially the same for a developer no matter what the underlying technology is
One of the issues with building software using Apache Maven is that its cache resolution is not optimal. It pulls down all the artifacts onto the developer's local machine and can sometimes result in conflicts.
The build process can vary in time and gets progressively longer as the project's complexity increases.
The overall usability of Apache Maven is very good to us. We were able to incorporate it into our company's build process pretty quickly. We deployed it to multiple teams throughout the entire enterprise. We got good feedback from our developers stating that Apache Maven has simplified their build process. It also allowed to to standardize the build process for the entire enterprise, thus ensure that each development team is using the same, consistent process to build code.
I can't speak to the support, as I've never had issues. Apache Maven "just works," and errors were user errors or local nexus errors. Apache Maven is a great build/dependency management tool. I give it a 9/10 because occasionally the error message don't immediately indicate a solution...but again, those errors were always user or configuration errors, and the Maven documentation is extensive, so I don't find fault in Maven, but in its users.
Ant is useful if your build is heavily based on customs scripts running in the right order. Maven greatly simplifies the process to keep track of and download build dependencies compared with Apache Ant. If your build is based on multiple custom scripts running in a specific order there is a lot of overhead in Maven compared to Apache Ant.
Codeship is easier to use than Jenkins because it does not require you to set up your own server, and it provides a large amount of out-of-the-box integrations for version control systems and cloud environments. AWS CodePipeline is native to AWS and cannot deploy applications reliably to other cloud environments such as GCP or Azure.
We have a few small projects with different developers and Codeship shows everyone clearly, if something work, or if it doesn't.
In one small project with a team of three developers, we have configured two builds and it takes 2-5 minutes for everyone on the team to push changes to an infrastructure handling a little over 3M users.