Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [m2e-users] Reducing build times

Thank you for your reply - I take it as an early clue that I'm not missing anything trivial, and that neither my project nor observed build time is out of ordinary.

Yes, I'm talking about the speed of a "full" (but not "clean") Maven build, specifically in a scenario in which I change some class in one of the projects upon which the web app depends - or maybe even a class directly in the web app project - and I want to see the effect of the change for the end user. AFAICS M2Eclipse doesn't automatically and incrementally update the contents of target/WEB-INF in that case, so I have to run the Maven build on the parent project myself (I created a Run Configuration for that).

You're right that a unit test covering just the changed piece of code would execute much faster, and it is certainly good practice to create such unit tests. Even so, it is not always followed. For example, right now my goal is to learn about (the structure of) someone else's existing code (with no unit tests, alas), and I'd like to be able to perform some quick experiments (tweak it a bit, see whether the assumed effects occur, then maybe tweak it again...).

Regards,
Jan Ploski

Anders Hammar wrote:
So you're doing a Maven build? If so it will take some time (the same
amount of time as from command line). The idea (my take on this at
least) when using the IDE is not to have to do a (full) Maven build all
the time, but rather utilize the fact that Eclipse will compile in
runtime. Eclipse will notify you of compilation errors (as it will when
not using m2eclipse and a Maven project). You want to verify someting in
the code? Simple, just execute that specific unit test from within
Eclipse (Run as Junit test).

You do a (full) Maven build when you certain things work and you just
want to verify by building the entire project.

This is at least how I try do develop my code,
/Anders

On Thu, Aug 4, 2011 at 22:28, Jan Ploski <jpl@xxxxxxxxxxxxx
<mailto:jpl@xxxxxxxxxxxxx>> wrote:

    Sorry, I forgot to mention: I'm using 1.0.0.20110607-2117, so that
    shouldn't be an issue.

     From the console output I see the time is spread among modules
    (module names changed to protect the innocent):

    [INFO] Reactor Summary:
    [INFO]
    [INFO] Parent project ..................... SUCCESS [0.521s]
    [INFO] Util ..............................__. SUCCESS [3.082s]
    [INFO] Security ........................... SUCCESS [1.156s]
    [INFO] Business interfaces ................ SUCCESS [1.272s]
    [INFO] Security implementation ............ SUCCESS [0.790s]
    [INFO] Business services implementation ... SUCCESS [1.418s]
    [INFO] WAR ..............................__.. SUCCESS [7.738s]
    [INFO] EAR ..............................__.. SUCCESS [5.742s]

    So I suppose my question may be more of a "best practices" / "is
    that normal" nature: given such a project structure, and my act of
    changing of a single source file, should I "suck it up", or am I
    justified in thinking that some optimizations in the development
    process are needed. I have been using scripting languages much
    recently, so delays of this kind do cause annoyance. But they might
    be just a fact of life given the different technology?...

    Regards,
    Jan Ploski

    Anders Hammar wrote:

        What version of m2e are you using? v1.0 is a great improvement
        compared
        to the older 0.x versions (where the behavior you're describing
        could
        happen).

        /Anders

        On Thu, Aug 4, 2011 at 18:21, Jan Ploski <jpl@xxxxxxxxxxxxx
        <mailto:jpl@xxxxxxxxxxxxx>
        <mailto:jpl@xxxxxxxxxxxxx <mailto:jpl@xxxxxxxxxxxxx>>> wrote:

            Hi,

            As a new user of M2Eclipse, I am wondering about typical and
        minimal
            build times. What I have here is a multi-module project
        structured
            according to the usual recommendations (much like the
        multi-module
            enterprise example in the Maven by Example book). Building
        it (from
            non-dirty state) using M2Eclipse (or directly with Maven) takes
            about 30 seconds. So after any slightest change in code I
        have to
            wait for at least 30 seconds before seeing the effect of my
        change
            in the browser. Given that Eclipse compiles the individual
        classes
            instantly as I type, the build step seems like a great waste
        and an
            unnecessary overhead.

            What are your impressions? Does working with Maven necessarily
            induce such delays into the edit-compile-run cycle and
        should one
            treat this overhead as a price for having a portable build
        system
            ("just buy faster hardware")? Or are there any
        tried-and-true tricks
            for speeding up the process? Right now I'm thinking about
        hacking
            together something project-specific that detects changes in
        .class
            files and then updates the corresponding resources in
        WEB-INF. But
            that's very crude and essentially means working around Maven (in
            development) instead of relying on it equally everywhere.

            Regards,
            Jan Ploski
            ___________________________________________________
            m2e-users mailing list
        m2e-users@xxxxxxxxxxx <mailto:m2e-users@xxxxxxxxxxx>
        <mailto:m2e-users@xxxxxxxxxxx <mailto:m2e-users@xxxxxxxxxxx>>

        https://dev.eclipse.org/____mailman/listinfo/m2e-users
        <https://dev.eclipse.org/__mailman/listinfo/m2e-users>
        <https://dev.eclipse.org/__mailman/listinfo/m2e-users
        <https://dev.eclipse.org/mailman/listinfo/m2e-users>>




        _________________________________________________
        m2e-users mailing list
        m2e-users@xxxxxxxxxxx <mailto:m2e-users@xxxxxxxxxxx>
        https://dev.eclipse.org/__mailman/listinfo/m2e-users
        <https://dev.eclipse.org/mailman/listinfo/m2e-users>


    _________________________________________________
    m2e-users mailing list
    m2e-users@xxxxxxxxxxx <mailto:m2e-users@xxxxxxxxxxx>
    https://dev.eclipse.org/__mailman/listinfo/m2e-users
    <https://dev.eclipse.org/mailman/listinfo/m2e-users>




_______________________________________________
m2e-users mailing list
m2e-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/m2e-users



Back to the top