← Back to team overview

syncany-team team mailing list archive

Re: Maven build

 

This is still on my radar. Just so you know.
I'll merge it into the "newsync" branch soon :-D

On Thu, Jun 23, 2011 at 2:27 PM, Anthony Dahanne
<anthony.dahanne@xxxxxxxxx> wrote:
> Hello julien,
> I did not know all the projects were not owned by syncany.
> And yes this is a lot of work to be compliant with central...
> Maybe one day..
>
> Le 23 juin 2011 03:52, "Julien Nicoulaud" <julien.nicoulaud@xxxxxxxxx> a
> écrit :
>> Hi Anthony,
>>
>> I don't think it is good practice to publish those dependencies ourself in
>> Maven Central repository, they should be deployed by their respective
>> project teams (for example, jpathwatch). This would involve a lot of work
>> to
>> make each of those dependencies meet criterias to be published into
>> Central
>> (generating source jars, write POMS, GPG signing, etc).
>>
>> But it would be nice to publish Syncany artifacts into Maven Central
>> repository, I will add the missing sections in the parent POM to make it
>> compliant with Central rules.
>>
>> Regards,
>> Julien
>>
>> 2011/6/23 Anthony Dahanne <anthony.dahanne@xxxxxxxxx>
>>
>>> Hello,
>>> First of all, congrats Julien for making the syncany build use Maven !
>>> if I may comment,
>>> > The "right Maven way" would be to deploy those dependencies in some
>>> public
>>> > repository, as it was said before. Any subdomain at syncany.org with
>>> > FTP
>>> > access for the one who will deploy the artifacts could do it.
>>>
>>> the even more "right maven way" would be to publish to Maven Central
>>>
>>>
>>> https://docs.sonatype.org/display/Repository/Sonatype+OSS+Maven+Repository+Usage+Guide
>>>
>>> what do you think ?
>>>
>>> Best regards,
>>> Anthony
>>>
>>> On Wed, Jun 22, 2011 at 5:53 PM, Julien Nicoulaud
>>> <julien.nicoulaud@xxxxxxxxx> wrote:
>>> > Hi Philipp,
>>> >
>>> > 2011/6/21 Philipp Heckel <philipp.heckel@xxxxxxxxx>
>>> >>
>>> >> Hallo Julien,
>>> >>
>>> >> this is perfect. That's exactly how I wanted it to be. Great job!
>>> >> I have to get used to the whole Maven thing, and I suppose that could
>>> >> take a while. I love how it integrates with NetBeans...
>>> >
>>> > Nice to hear :)
>>> >>
>>> >> I could get it to compile after a while from within NetBeans, but on
>>> >> the command line, it didn't find any dependencies and kept complaining
>>> >> about the source code being java v1.3 (log attached).
>>> >
>>> > Sorry about that, this is because I use Maven 3 and the Java level is
>>> > set
>>> to
>>> > 1.6 by default, which is not the case for Maven 2. I pushed some new
>>> changes
>>> > to force Java 1.6, whatever the version of Maven is used.
>>> >>
>>> >> In Netbeans, no dependencies would show at all in the individual
>>> >> plugins list until I added some jar manually via the context menu (add
>>> >> dependency). Once I did that, all the other dependencies appeared.
>>> >
>>> > Yes, this is because the build installs those dependencies in the local
>>> > Maven repository, so you need to build at least once on the command
>>> > line
>>> to
>>> > have all those depedencies properly installed and let Netbeans find
>>> > them.
>>> > You have one example of this
>>> > here:
>>>
>>> http://bazaar.launchpad.net/~julien-nicoulaud/syncany/maven/view/head:/syncany/syncany-core/pom.xml#L82
>>> > The "right Maven way" would be to deploy those dependencies in some
>>> public
>>> > repository, as it was said before. Any subdomain at syncany.org with
>>> > FTP
>>> > access for the one who will deploy the artifacts could do it.
>>> >>
>>> >> I think once these few issues are resolves, it'll work perfectly. Did
>>> >> you already add all dependencies for the individual plugins, or is
>>> >> this just a preview version? I didn't have the time to check...
>>> >
>>> > Yes, I did, it is supposed to work fine out of the box now :)
>>> >>
>>> >> Cheers,
>>> >> Philipp
>>> >>
>>> >> On Mon, Jun 20, 2011 at 2:40 AM, Philipp Heckel
>>> >> <philipp.heckel@xxxxxxxxx> wrote:
>>> >> > Great. I'll try it tomorrow.
>>> >> >
>>> >> > On Sun, Jun 19, 2011 at 10:29 PM, Julien Nicoulaud
>>> >> > <julien.nicoulaud@xxxxxxxxx> wrote:
>>> >> >> Hi,
>>> >> >>
>>> >> >> I have pushed in the branch, the build now generates a working
>>> >> >> assembly, you
>>> >> >> can test it this way:
>>> >> >> bzr branch lp:~julien-nicoulaud/syncany/maven
>>> >> >> cd syncany/syncany
>>> >> >> mvn clean install
>>> >> >>
>>> >> >>
>>> syncany-assemblies/target/syncany-*-assembly/syncany-*/bin/syncany.sh
>>> >> >> Tell me what you think !
>>> >> >>
>>> >> >> Cheers,
>>> >> >> Julien
>>> >> >> 2011/6/14 Philipp Heckel <philipp.heckel@xxxxxxxxx>
>>> >> >>>
>>> >> >>> Hey Julien,
>>> >> >>>
>>> >> >>> I've briefly browsed through the code and rearrangements you did.
>>> >> >>> I
>>> >> >>> think it really looks good! Do you have a lot of experience in
>>> >> >>> this?
>>> >> >>
>>> >> >> I've done this a few times :)
>>> >> >>
>>> >> >>>
>>> >> >>> I
>>> >> >>> will definitely take a closer look in the next days!
>>> >> >>>
>>> >> >>> Cheers,
>>> >> >>> Philipp
>>> >> >>>
>>> >> >>> On Mon, Jun 13, 2011 at 10:28 PM, Julien Nicoulaud
>>> >> >>> <julien.nicoulaud@xxxxxxxxx> wrote:
>>> >> >>> > OK, I've started it in the branch
>>> >> >>> > (https://code.launchpad.net/~julien-nicoulaud/syncany/maven).
>>> >> >>> > For
>>> >> >>> > now
>>> >> >>> > the
>>> >> >>> > project compiles and generates an (unusable) assembly, the work
>>> >> >>> > is
>>> >> >>> > still
>>> >> >>> > in
>>> >> >>> > progress but you can already see the structure (please stop me
>>> right
>>> >> >>> > here if
>>> >> >>> > it's not OK). Only a few jars remain checked in version control.
>>> >> >>> > Also, I will add the config for izpack so you can see how easy
>>> >> >>> > it
>>> is
>>> >> >>> > to
>>> >> >>> > generate a cross-platform installer with Izpack+Maven.
>>> >> >>> > Cheers,
>>> >> >>> > Julien
>>> >> >>> >
>>> >> >>> > 2011/6/13 Philipp Heckel <philipp.heckel@xxxxxxxxx>
>>> >> >>> >>
>>> >> >>> >> Alright then :-D
>>> >> >>> >> I'm convinced!
>>> >> >>> >>
>>> >> >>> >> On Mon, Jun 13, 2011 at 6:06 PM, Julien Nicoulaud
>>> >> >>> >> <julien.nicoulaud@xxxxxxxxx> wrote:
>>> >> >>> >> > Nice, I will start working on it in this branch:
>>> >> >>> >> > https://code.launchpad.net/~julien-nicoulaud/syncany/maven
>>> >> >>> >> > I will let you know when it's ready for testing.
>>> >> >>> >> >
>>> >> >>> >> > 2011/6/13 nocans@xxxxxxxxx <nocans@xxxxxxxxx>
>>> >> >>> >> >>
>>> >> >>> >> >> I'm all for it, and it sounds a nice opportunity to learn
>>> >> >>> >> >> more
>>> >> >>> >> >> about
>>> >> >>> >> >> maven.
>>> >> >>> >> >> I will see what I can do about us having a repo so we can
>>> >> >>> >> >> have
>>> >> >>> >> >> cake
>>> >> >>> >> >> and
>>> >> >>> >> >> eat it!
>>> >> >>> >> >>
>>> >> >>> >> >> On Mon, Jun 13, 2011 at 11:23 AM, Julien Nicoulaud
>>> >> >>> >> >> <julien.nicoulaud@xxxxxxxxx> wrote:
>>> >> >>> >> >>>
>>> >> >>> >> >>> Hi all,
>>> >> >>> >> >>> Let me give the main reasons why I made this proposition:
>>> >> >>> >> >>> - Right now the project is quite difficult to setup in
>>> >> >>> >> >>> other
>>> >> >>> >> >>> IDEs
>>> >> >>> >> >>> than
>>> >> >>> >> >>> Netbeans (IntelliJ IDEA user here). Maven benefits of a
>>> >> >>> >> >>> great
>>> >> >>> >> >>> integration
>>> >> >>> >> >>> with most IDEs, so it makes it easier for developers to get
>>> >> >>> >> >>> started.
>>> >> >>> >> >>> - The Java libraries are checked in version control, which
>>> >> >>> >> >>> makes
>>> >> >>> >> >>> it
>>> >> >>> >> >>> very
>>> >> >>> >> >>> heavy. Maven pulls dependencies from repositories.
>>> >> >>> >> >>> - The packaging and distribution of assemblies is easy, we
>>> can
>>> >> >>> >> >>> easily
>>> >> >>> >> >>> package an assembly for Windows, Linux, for development,
>>> >> >>> >> >>> etc.
>>> >> >>> >> >>> through
>>> >> >>> >> >>> descriptor files.
>>> >> >>> >> >>> - The modularisation could be improved, for example it
>>> >> >>> >> >>> seems
>>> >> >>> >> >>> to me
>>> >> >>> >> >>> that
>>> >> >>> >> >>> subpackages in org.syncany.connection.plugins should be
>>> >> >>> >> >>> packaged in
>>> >> >>> >> >>> different Jars ?
>>> >> >>> >> >>> - Also, Maven can handle the release process (doing a VCS
>>> tag,
>>> >> >>> >> >>> generating the release artifacts, bump version numbers,
>>> >> >>> >> >>> etc),
>>> >> >>> >> >>> but
>>> >> >>> >> >>> it's
>>> >> >>> >> >>> not
>>> >> >>> >> >>> mandatory.
>>> >> >>> >> >>>
>>> >> >>> >> >>> @Jason: We don't really need a repo, I took a quick look
>>> >> >>> >> >>> and
>>> >> >>> >> >>> here
>>> >> >>> >> >>> is
>>> >> >>> >> >>> the
>>> >> >>> >> >>> list of dependencies in libs/** that I could not find in
>>> Maven
>>> >> >>> >> >>> central
>>> >> >>> >> >>> repository:
>>> >> >>> >> >>> * AbsoluteLayout
>>> >> >>> >> >>> * AppFramework
>>> >> >>> >> >>> * eclipselink
>>> >> >>> >> >>> * eclipselink-javax.persistence
>>> >> >>> >> >>> * jpathwatch
>>> >> >>> >> >>> * gdata-*
>>> >> >>> >> >>> * j2ssh
>>> >> >>> >> >>> These few jars could just stay checked in version control.
>>> >> >>> >> >>> Julien
>>> >> >>> >> >>> 2011/6/13 nocans@xxxxxxxxx <nocans@xxxxxxxxx>
>>> >> >>> >> >>>>
>>> >> >>> >> >>>> Maven is quite a treat. A lot of people are using it these
>>> >> >>> >> >>>> days
>>> >> >>> >> >>>> and
>>> >> >>> >> >>>> has
>>> >> >>> >> >>>> great advantages. I am not a maven expert by any means,
>>> >> >>> >> >>>> but
>>> I
>>> >> >>> >> >>>> can
>>> >> >>> >> >>>> tell you
>>> >> >>> >> >>>> that the nicest thing about it is that you describe a
>>> project
>>> >> >>> >> >>>> and
>>> >> >>> >> >>>> it's
>>> >> >>> >> >>>> dependanices in an xml file so that when you build it all
>>> the
>>> >> >>> >> >>>> dependancies
>>> >> >>> >> >>>> are pulled from your nexus repo, which is just a smart-ish
>>> >> >>> >> >>>> binary
>>> >> >>> >> >>>> repo.
>>> >> >>> >> >>>> Also, when your project builds successfully your artifacts
>>> can
>>> >> >>> >> >>>> be
>>> >> >>> >> >>>> stored in
>>> >> >>> >> >>>> your repo as snapshots so that others can use them.
>>> >> >>> >> >>>> The main idea of maven is that when a developer pulls the
>>> >> >>> >> >>>> source
>>> >> >>> >> >>>> there's
>>> >> >>> >> >>>> no guesswork as to how to build and deploy the project,
>>> >> >>> >> >>>> it's
>>> >> >>> >> >>>> all
>>> >> >>> >> >>>> done
>>> >> >>> >> >>>> with
>>> >> >>> >> >>>> maven. In doing so, the project has to adhere to certain
>>> >> >>> >> >>>> standards,
>>> >> >>> >> >>>> namely
>>> >> >>> >> >>>> how the files and folders are laid out which is defined in
>>> >> >>> >> >>>> a
>>> >> >>> >> >>>> maven
>>> >> >>> >> >>>> archetype
>>> >> >>> >> >>>> and can even be changed if you want.
>>> >> >>> >> >>>> This is why I asked if there was some sort of 'public'
>>> >> >>> >> >>>> repo
>>> we
>>> >> >>> >> >>>> could
>>> >> >>> >> >>>> use, since we're an open source project, because to take
>>> full
>>> >> >>> >> >>>> advantage of
>>> >> >>> >> >>>> maven one needs a nexus repo, and I don't have one handy
>>> >> >>> >> >>>> :)
>>> >> >>> >> >>>>
>>> >> >>> >> >>>>
>>> >> >>> >> >>>> On Mon, Jun 13, 2011 at 6:46 AM, Philipp Heckel
>>> >> >>> >> >>>> <philipp.heckel@xxxxxxxxx> wrote:
>>> >> >>> >> >>>>>
>>> >> >>> >> >>>>> I have no experience with Maven or Ant. Are there any
>>> >> >>> >> >>>>> significant
>>> >> >>> >> >>>>> advantages in using Maven? Ant sort of integrated with
>>> >> >>> >> >>>>> Netbeans
>>> >> >>> >> >>>>> at
>>> >> >>> >> >>>>> the
>>> >> >>> >> >>>>> moment ...
>>> >> >>> >> >>>>>
>>> >> >>> >> >>>>> If there are none, I think I agree with what Jason
>>> >> >>> >> >>>>> (nocans)
>>> >> >>> >> >>>>> says
>>> >> >>> >> >>>>> :-)
>>> >> >>> >> >>>>>
>>> >> >>> >> >>>>> On Sun, Jun 12, 2011 at 1:59 AM, nocans@xxxxxxxxx
>>> >> >>> >> >>>>> <nocans@xxxxxxxxx>
>>> >> >>> >> >>>>> wrote:
>>> >> >>> >> >>>>> > Aside from the work of rearranging files and folders to
>>> >> >>> >> >>>>> > match
>>> >> >>> >> >>>>> > an
>>> >> >>> >> >>>>> > archetype,
>>> >> >>> >> >>>>> > I don't think it would be of a great benefit unless the
>>> >> >>> >> >>>>> > project
>>> >> >>> >> >>>>> > had
>>> >> >>> >> >>>>> > its own
>>> >> >>> >> >>>>> > nexus server.
>>> >> >>> >> >>>>> > Is there some sort of free nexus server resource for
>>> >> >>> >> >>>>> > open
>>> >> >>> >> >>>>> > source
>>> >> >>> >> >>>>> > projects ?
>>> >> >>> >> >>>>> >
>>> >> >>> >> >>>>> > On Sat, Jun 11, 2011 at 2:30 PM, Julien Nicoulaud
>>> >> >>> >> >>>>> > <julien.nicoulaud@xxxxxxxxx> wrote:
>>> >> >>> >> >>>>> >>
>>> >> >>> >> >>>>> >> Hi all,
>>> >> >>> >> >>>>> >> Just wanted to know, are you interested in
>>> >> >>> >> >>>>> >> Maven-inizing
>>> >> >>> >> >>>>> >> the
>>> >> >>> >> >>>>> >> project
>>> >> >>> >> >>>>> >> ? I
>>> >> >>> >> >>>>> >> can do this.
>>> >> >>> >> >>>>> >> Cheers,
>>> >> >>> >> >>>>> >> Julien
>>> >> >>> >> >>>>> >> --
>>> >> >>> >> >>>>> >> Mailing list: https://launchpad.net/~syncany-team
>>> >> >>> >> >>>>> >> Post to : syncany-team@xxxxxxxxxxxxxxxxxxx
>>> >> >>> >> >>>>> >> Unsubscribe : https://launchpad.net/~syncany-team
>>> >> >>> >> >>>>> >> More help : https://help.launchpad.net/ListHelp
>>> >> >>> >> >>>>> >>
>>> >> >>> >> >>>>> >
>>> >> >>> >> >>>>> >
>>> >> >>> >> >>>>> > --
>>> >> >>> >> >>>>> > Mailing list: https://launchpad.net/~syncany-team
>>> >> >>> >> >>>>> > Post to : syncany-team@xxxxxxxxxxxxxxxxxxx
>>> >> >>> >> >>>>> > Unsubscribe : https://launchpad.net/~syncany-team
>>> >> >>> >> >>>>> > More help : https://help.launchpad.net/ListHelp
>>> >> >>> >> >>>>> >
>>> >> >>> >> >>>>> >
>>> >> >>> >> >>>>
>>> >> >>> >> >>>
>>> >> >>> >> >>
>>> >> >>> >> >
>>> >> >>> >> >
>>> >> >>> >
>>> >> >>> >
>>> >> >>
>>> >> >>
>>> >> >
>>> >
>>> >
>>> > --
>>> > Mailing list: https://launchpad.net/~syncany-team
>>> > Post to : syncany-team@xxxxxxxxxxxxxxxxxxx
>>> > Unsubscribe : https://launchpad.net/~syncany-team
>>> > More help : https://help.launchpad.net/ListHelp
>>> >
>>> >
>>>
>


References