Goodbye SVN, Hello Git
We are moving both our public and private source repositories to Git for a few reasons:
- Git works better for people with slow or lagging connections
- Branch management is easy
- Submitting patches via a pull request is easier to deal with than a patch attached to a bug report
We started out with SVN mostly because that was what everyone was used to. A year ago or so, one of our remote developers started using a git-svn mirror to remove some of the latency issues they had with SVN. Someone else put together a ten page wiki on how to easily use a git-svn mirror and push back to the canonical SVN repo. As time went on, interest in git grew and new modules were created in git, instead of our SVN repositories. Finally there was a push to move everything to git.
Tycho: Building Eclipse plugins with Maven
As part of the Eclipse Live series of webinars, Sonatype software developer Pascal Rapicault is giving a presentation on Tycho: Building Eclipse plugins with Maven.
About the webinar:
Tycho is a set of Maven plugins and extensions for building Eclipse plugins and OSGI bundles with Maven. Eclipse plugins and OSGI bundles have their own metadata for expressing dependencies, source folder locations, etc. that are normally found in a Maven POM. Tycho uses native metadata for Eclipse plugins and OSGi bundles and uses the POM to configure and drive the build. Tycho supports bundles, fragments, features, update site projects and RCP applications. Tycho also knows how to run JUnit test plugins using OSGi runtime and there is also support for sharing build results using Maven artifact repositories.
Join this webinar to get an overview of the Tycho project and to learn what plans the project has for the future.
- Date: May 3, 2011
- Time: 9:00 am PST / 12:00 pm EST / 4:00 pm UTC / 6:00 pm CET
- Length: 60 minutes
- Enroll here!
Sonatype Maven Training class available during European business hours
UPDATE :: Enrollment for this class is now closed
Due to popular request, Sonatype has decided to offer a MVN-101 training course in May during European business hours. The training course will be led by Anders Hammar of Devoteam Sweden, a certified Sonatype Training Partner.
Course details:
- MVN-101
- Tuesday May 10, 2011
- European Hours 9:00 am – 4:00 pm CEST (GMT + 02:00)
- ENROLL TODAY!
Maven Mechanics MVN-101 is the premier Java developer training course. It comprehensively covers Maven installation and configuration, explains the motivation behind Maven and gives an overview of related development tools. You will leave this Maven tutorial equipped with a full understanding of the Maven Project Object Model (POM) and a firm grasp of the underlying fundamentals of this development kit including:
- The Maven lifecycle
- Maven plugins and goals
- Multi-module Maven projects
- The contents of the Project Object Model (POM)
Webinar replay for "Enterprise Repository Management" now available
If you missed our latest webinar “Enterprise Repository Management” you can view a recorded version of the webinar here.
Now that you’re primed with knowledge, jump in and see what a repository can do for your development workflow:
- Download a free evaluation copy of Nexus Professional
- Learn more about repository management
- Contact a Sonatype representative for more information
If you have any questions about Nexus or repositories in general, we have engineers (not just sales guys) who would be happy to speak with you.
How not to download the Internet
A criticism I hear often about Maven is, “every time you run Maven, it downloads the internet.” I understand the criticism, as the first time you run Maven it has to populate your local repository. Maven downloads plugins and artifacts that your project depends on. Maven does in fact download artifacts from remote repositories, but it downloads the artifact once and keeps a local cache.
Maven only downloads most of these dependencies because you’ve added them to your project. If you are unhappy that Maven is “downloading the internet” then stop developing software that depends on external libraries. Easy, right? Stop using Spring and Hibernate, stop referencing the commons libraries, and do everything yourself. This would be one way to avoid downloading any artifacts from a remote repository. Stop using Maven to build your software and write your own build tool that has all of the capabilities of Maven and every imaginable Maven plugin baked into it.
Not a workable solution, right? The fact of the matter is that your software has dependencies on external libraries. If you find yourself constantly “downloading the internet” there’s a reason. You are depending on projects that depend on “the internet” or, your projects have a very wide set of dependencies that may need to be trimmed.
How can we avoid creating projects and POMs that “download the internet”? The simple answer is that everyone needs to start focusing on dependencies. Library developers need to be smarter about creating leaner, meaner dependency lists, and you need to start evaluating your own dependencies with an eye on efficiency.