You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@maven.apache.org by Asaf Mesika <as...@gmail.com> on 2011/08/07 21:42:27 UTC

Re: [m2e-users] Maven, Eclipse, Nexus, Perforce, Team City, Oh My!

Cool article.  

You are correct: Maven has a very steep learning curve. M2E makes it easier only partially, but still requires an advance Maven Admin on the team/organization.
I wonder: Was the Sonatype book helpful? When I first started, it didn't exist yet and I had to learn only from another person who installed Maven for a living.

Regarding you setup depicted in the article, here are a few comments:
Why did you put your Maven repository under "P:\supercool\Maven\repository" and not stick with the convention of ~/.m2/repository (I don't remember the similar path in Windows, but it should be under the User Profile directory)?  
Why did you not put your settings file as convention goes: ~/.m2/settings.xml?
In our team, we softlinked ~/.m2/settings.xml to a source controlled directory everyone has: ~/work/acme/build, thus spreading a new company configuration easily.  

Regarding Perforce - Why not git? Git is free, amazingly fast, awfully intuitive, and has integration in all IDEs (Unfortunately best integration is in IntelliJ).

In my professional life I've used many tools: CA's CCC/Harvest, IBM's ClearCase, Subversion, Mercurial, and git.
The best tool I've found was git. One of my favorite feature is the merge - simply outstanding compared to any other tool.



--  
Asaf Mesika
Sent with Sparrow (http://www.sparrowmailapp.com/?sig)

On יום שישי 5 אוגוסט 2011 at 08:35, Eric Kolotyluk wrote:

> OK, this is my meager first attempt to give something back to the  
> community...
>  
> http://docs.codehaus.org/display/MAVENUSER/Maven%2C+Eclipse%2C+Nexus%2C+Perforce%2C+Team+City%2C+Oh+My!  
> <http://docs.codehaus.org/display/MAVENUSER/Maven%2C+Eclipse%2C+Nexus%2C+Perforce%2C+Team+City%2C+Oh+My%21>
>  
> Send e-mail to my personal address, or flame/commend me in the mailing  
> lists - I'm thick skinned, but receptive of praise.
>  
> The point is, I really love Maven, but I want to see it improve, and  
> this is my way of going about it. I hope hope to add more experience to  
> this in the future, so comments and criticism are appreciated.
>  
> Cheers, Eric
> _______________________________________________
> m2e-users mailing list
> m2e-users@eclipse.org (mailto:m2e-users@eclipse.org)
> https://dev.eclipse.org/mailman/listinfo/m2e-users


Re: [m2e-users] Maven, Eclipse, Nexus, Perforce, Team City, Oh My!

Posted by Ron Wheeler <rw...@artifact-software.com>.
On 07/08/2011 10:13 PM, Barrie Treloar wrote:
> On Mon, Aug 8, 2011 at 8:25 AM, Eric Kolotyluk<er...@gmail.com>  wrote:
>> You're telling me Maven requires an advanced Maven Admin on the
>> team/organization? No-one told me that before.
> Don't be fooled.
> Any build system requires this person.
>
> You can't expect clueless people to be able to run your build systems
> for you, that is a recipe for disaster.
This may be true but we all get our level of cluelessness reduced over 
time and it is a question of how long does it take to go from clueless 
to sufficiently clued in.
In our own case, we started out pretty clueless but got a major 
application into production in spite of ourselves.

Getting Nexus (free) was a giant step forward and I am appalled at how 
much time we lost through the lack of transparency into Maven that we 
had before we got Nexus.

Moving from Eclipse to Eclipse STS (also free) was another big step 
forward. The tight integration of Maven that comes right out of the box 
made it easier to ensure that everyone was running the same IDE 
including plug-ins and had all the right tools to work with Maven.

Properly using SNAPSHOTs and releases was a big step in our maturity. 
Nexus' enforcement of immutability of releases made it easier to spot 
sloppy testing and poor specification processes.

Getting control over dependencies was another big step forward since it 
centralized the choice of version of the 70+ third party libraries that 
we use.
It also made us think more rationally about how we built and deployed 
utilities and web services to make them much more like third party tools 
- robust, released with a warranty, etc.
It also reduced the size of our artifacts so that build and deploy was 
much faster.

We are getting further away from clueless but there is still a lot to learn.

Ron
> You need people who understand the fundamental problems and then how
> you map those into your build system of choice.
> Often developer aren't willing to step out of the comfort zone to
> learn this, since it works fine in their IDE why should they bother?
> But once you get continuous integration working then it is easier to
> stop the "works for me mentality" because they are responsible for
> ensuring it continues to work in a neutral third party.
>
> I've mailed previously that the entry curve for maven is low,
> especially if you are working by yourself on someone else's open
> source project.
> Install maven, run mvn install on your project, done.
> So there is little incentive to learn what the pom is and how to configure it.
> This entry curve is steeper when you are behind a firewall or trying
> to produce corporate guidelines, or are defining that project from
> scratch.
>
> You don't get that low entry for other build systems.  You often have
> to tinker with something to specify your local configuration
> differences in the build system.
> This means the developer is forced to learn about the system and that
> incidentally learning is often enough for them to perceive that the
> learning curve isn't there or is not steep.
>
> And because maven can do so much for you out of the box, you need to
> remember to compare apples with apples.
>
> Yes its not all roses, buts its still the best option out there.
>
> (Note: Obviously I'm biased in my opinion)
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


Re: [m2e-users] Maven, Eclipse, Nexus, Perforce, Team City, Oh My!

Posted by Eric Kolotyluk <er...@gmail.com>.
That was an attempt at some humor on my part - obviously a bad attempt :-)

Yes, it has become obvious to me now that it takes time to acquire the 
skill and experience to make the best use of Maven, and now I have 6 
months experience. For the time being, I am the Maven Admin. It is also 
why I am spending so much time trying to get things right before handing 
it over to the rest of the team. As the instigator, it is my duty to 
make sure the team is not side tracked by the tool and it quirks, and 
that I can be there to bail them out if they step into trouble. Also, 
now I can ad Maven to my resume ;-)

Barrie, what you say is all true. It's also true that we don't learn to 
swim if we don't jump into the pool at some point, but I think you 
implied that.

Cheers, Eric

On 2011-08-07 7:13 PM, Barrie Treloar wrote:
> On Mon, Aug 8, 2011 at 8:25 AM, Eric Kolotyluk<er...@gmail.com>  wrote:
>> You're telling me Maven requires an advanced Maven Admin on the
>> team/organization? No-one told me that before.
> Don't be fooled.
> Any build system requires this person.
>
> You can't expect clueless people to be able to run your build systems
> for you, that is a recipe for disaster.
> You need people who understand the fundamental problems and then how
> you map those into your build system of choice.
> Often developer aren't willing to step out of the comfort zone to
> learn this, since it works fine in their IDE why should they bother?
> But once you get continuous integration working then it is easier to
> stop the "works for me mentality" because they are responsible for
> ensuring it continues to work in a neutral third party.
>
> I've mailed previously that the entry curve for maven is low,
> especially if you are working by yourself on someone else's open
> source project.
> Install maven, run mvn install on your project, done.
> So there is little incentive to learn what the pom is and how to configure it.
> This entry curve is steeper when you are behind a firewall or trying
> to produce corporate guidelines, or are defining that project from
> scratch.
>
> You don't get that low entry for other build systems.  You often have
> to tinker with something to specify your local configuration
> differences in the build system.
> This means the developer is forced to learn about the system and that
> incidentally learning is often enough for them to perceive that the
> learning curve isn't there or is not steep.
>
> And because maven can do so much for you out of the box, you need to
> remember to compare apples with apples.
>
> Yes its not all roses, buts its still the best option out there.
>
> (Note: Obviously I'm biased in my opinion)
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


Re: [m2e-users] Maven, Eclipse, Nexus, Perforce, Team City, Oh My!

Posted by Barrie Treloar <ba...@gmail.com>.
On Mon, Aug 8, 2011 at 8:25 AM, Eric Kolotyluk <er...@gmail.com> wrote:
> You're telling me Maven requires an advanced Maven Admin on the
> team/organization? No-one told me that before.

Don't be fooled.
Any build system requires this person.

You can't expect clueless people to be able to run your build systems
for you, that is a recipe for disaster.
You need people who understand the fundamental problems and then how
you map those into your build system of choice.
Often developer aren't willing to step out of the comfort zone to
learn this, since it works fine in their IDE why should they bother?
But once you get continuous integration working then it is easier to
stop the "works for me mentality" because they are responsible for
ensuring it continues to work in a neutral third party.

I've mailed previously that the entry curve for maven is low,
especially if you are working by yourself on someone else's open
source project.
Install maven, run mvn install on your project, done.
So there is little incentive to learn what the pom is and how to configure it.
This entry curve is steeper when you are behind a firewall or trying
to produce corporate guidelines, or are defining that project from
scratch.

You don't get that low entry for other build systems.  You often have
to tinker with something to specify your local configuration
differences in the build system.
This means the developer is forced to learn about the system and that
incidentally learning is often enough for them to perceive that the
learning curve isn't there or is not steep.

And because maven can do so much for you out of the box, you need to
remember to compare apples with apples.

Yes its not all roses, buts its still the best option out there.

(Note: Obviously I'm biased in my opinion)

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


Re: [m2e-users] Maven, Eclipse, Nexus, Perforce, Team City, Oh My!

Posted by Eric Kolotyluk <er...@gmail.com>.
Thanks Asaf :-)

You're telling me Maven requires an advanced Maven Admin on the 
team/organization? No-one told me that before. I am the only one on the 
team with any Maven experience, and I am the software architect on a new 
infrastructure project, and since January the only person who has 
written any code on the project. My goal is to change that next week and 
let others start working on the code base. It would have been sooner, 
but I have been fighting Maven, Nexus and m2e configuration hassles for 
almost two weeks. Anyway, I started the wiki article to try share some 
of what I have learned. I still have more to figure out too, like the 
Team City side.

Yes, the Sonatype book is helpful to get your bearings, but does not 
sufficiently address the deeper issues that as far as I can tell are 
still only tribal knowledge shared in the mailing lists.

I figured out that when using m2e, that 
preferences>maven>Installations:Global Settings and 
preferences>maven>user settings:user settings both have to point to the 
same place, and I wanted the settings to be under source control so if I 
have to change them, the whole team will pick up the changes.

Your solution would have been my first choice, but in Windows soft links 
are problematic, especially with Windows XP, which some of our team 
still use. Google 'reparse points' and you will see how messed up 
Microsoft's view of the world is. Windows 7 finally has soft links like 
Unix, but they are still not as convenient to use as in Unix, and it 
will be a while before the rest of our team upgrade to Windows 7.

The most expedient and flexible solution I could come up with at the 
moment was to put settings.xml in the same path as the rest of the 
source control. Using the Windows 'subst' command gives me similar 
flexibility to soft links - and is easy to implement in Windows XP. 
While I was at it I decided to put the local repository there too 
because I can tell Perforce to ignore it with the .p4ignore file (using 
team>perforce>ignore in Eclipse). I know it all seems weird, but after 
trying many other things in Windows, it was the most simple way I could 
get things to work.

Thanks for asking these questions - it mean I need to explain myself 
better in the wiki article.

I have renamed the article to "Windows, Maven, Eclipse, Nexus, Perforce, 
Team City, Oh My! 
<http://docs.codehaus.org/display/MAVENUSER/Windows%2C+Maven%2C+Eclipse%2C+Nexus%2C+Perforce%2C+Team+City%2C+Oh+My%21>"

Where I work, Perforce is the tool we have, it is the tool the team 
knows how to use. For months I actually had things working with IBM Jazz 
Team Concert. It has it's own source control system that is not 
ClearCase, it's much better, and all the other Jazz tools are highly 
integrated. I am told Team Concerts' source control is more similar to 
Git, but I have no direct experience with Git. Eventually I switched 
back to our current set of tools because I did not have the resources to 
be sys admin for Jazz, and teach the team a new set of tools.

Thanks for in info on Git, I will have to look into it more some day.

Cheers, Eric

On 2011-08-07 12:42 PM, Asaf Mesika wrote:
> Cool article.
> You are correct: Maven has a very steep learning curve. M2E makes it 
> easier only partially, but still requires an advance Maven Admin on 
> the team/organization.
> I wonder: Was the Sonatype book helpful? When I first started, it 
> didn't exist yet and I had to learn only from another person who 
> installed Maven for a living.
>
> Regarding you setup depicted in the article, here are a few comments:
>
>   * Why did you put your Maven repository under
>     "P:\supercool\Maven\repository" and not stick with the convention
>     of ~/.m2/repository (I don't remember the similar path in Windows,
>     but it should be under the User Profile directory)?
>   * Why did you not put your settings file as convention goes:
>     ~/.m2/settings.xml?
>   * In our team, we softlinked ~/.m2/settings.xml to a source
>     controlled directory everyone has: ~/work/acme/build, thus
>     spreading a new company configuration easily.
>
> Regarding Perforce - Why not git? Git is free, amazingly fast, awfully 
> intuitive, and has integration in all IDEs (Unfortunately best 
> integration is in IntelliJ).
> In my professional life I've used many tools: CA's CCC/Harvest, IBM's 
> ClearCase, Subversion, Mercurial, and git.
> The best tool I've found was git. One of my favorite feature is the 
> merge - simply outstanding compared to any other tool.
>
>
>
> -- 
> Asaf Mesika
> Sent with Sparrow <http://www.sparrowmailapp.com/?sig>
>
> On ??? ???? 5 ?????? 2011 at 08:35, Eric Kolotyluk wrote:
>
>> OK, this is my meager first attempt to give something back to the
>> community...
>>
>> http://docs.codehaus.org/display/MAVENUSER/Maven%2C+Eclipse%2C+Nexus%2C+Perforce%2C+Team+City%2C+Oh+My! 
>>
>> <http://docs.codehaus.org/display/MAVENUSER/Maven%2C+Eclipse%2C+Nexus%2C+Perforce%2C+Team+City%2C+Oh+My%21>
>>
>> Send e-mail to my personal address, or flame/commend me in the mailing
>> lists - I'm thick skinned, but receptive of praise.
>>
>> The point is, I really love Maven, but I want to see it improve, and
>> this is my way of going about it. I hope hope to add more experience to
>> this in the future, so comments and criticism are appreciated.
>>
>> Cheers, Eric
>> _______________________________________________
>> m2e-users mailing list
>> m2e-users@eclipse.org <ma...@eclipse.org>
>> https://dev.eclipse.org/mailman/listinfo/m2e-users
>
>
>
> _______________________________________________
> m2e-users mailing list
> m2e-users@eclipse.org
> https://dev.eclipse.org/mailman/listinfo/m2e-users