On Thu, Nov 13, 2014 at 2:59 PM, Alex Harui <aha...@adobe.com> wrote:
> Thanks, Om, I liked the summary. > > Testing Chris’ release candidate via Maven was my first real exposure to > it. The way I think of Maven now is that makes assumptions about the way > projects are built in order to make it easier to build them if you can > conform to its rules. Ant, on the other hand, is a scripting language > that can be used to build projects as well as other things. > > I once went to a pizza restaurant where all the toppings were in a salad > bar. You took a plain cheese pizza, put your toppings on it, and handed > it to the “chef” who put it in the oven and returned it to you when > finished. That is Ant. Everyone can make different kinds of pizzas, but > every pizza I make if I go through the same steps will be the same (or > similar enough). > > In the Maven equivalent of this restaurant, the toppings would be > pre-packaged into certain quantities. You would check which ones you > wanted and the “chef” would distribute the toppings on the pizza and cook > it for a fixed amount of time. Then, anyone selecting pepperoni and > sausage would get the same exact pizza. > > Sometimes, that’s good, and when manufacturing/building things, that’s > generally what you want, but sometimes you want more flexibility, like > putting the pepperoni on one side and the sausage on the other. > Just to be clear, Maven favors convention over configuration, but it does not dictate it. You can certainly change the default assumptions that Maven makes about your project [1] [1] http://books.sonatype.com/mvnref-book/reference/installation-sect-conventionConfiguration.html > > In fact, when trying to review the potential release candidate, it turned > out to be difficult (impossible?) for Maven to provide the source artifact > on the CI server without actually deploying the artifact to a Maven > server. Can you please explain what "for Maven to provide the source artifact on the CI server" means? What are you trying to do? > In Ant, there would likely be a “target” just for building the > source artifact and I could get just that one thing. > > If you look at the Ant scripts that build our various release packages, > there is a lot of commonality, but often the same thing is being done > slightly differently in different scripts or at least has a different > name. If we switched to Maven, there would be far less room for > variability, and creating the release for the next donated code would be > easier for folks who know Maven, but somehow, Maven seems too opaque for > me. Moving our framework scripts to maven is not needed IMO. Ant works and I feel there is no need to change it. When it comes to end users using Maven to build their Flex apps, that is a different question altogether. Supporting Maven is a big requirement for enterprise software development. Thanks, Om P.S. For a good read on the Maven, I highly recommend this book: http://books.sonatype.com/mvnref-book/reference/index.html > I would rather refactor all of our Ant scripts to use some common > tasks/macros so there is consistency between them and be able to see what > is inside each step. But I can certainly be convinced otherwise. > > -Alex > > On 11/13/14, 2:25 PM, "OmPrakash Muppirala" <bigosma...@gmail.com> wrote: > > >On Thu, Nov 13, 2014 at 12:57 PM, Harbs <harbs.li...@gmail.com> wrote: > > > >> > The cool thing is that I am currently able to build a FlexJS > >>application > >> on a machine without any Falcon, FalconJX, ASJS, or even a FDK > >>installed. > >> No need to download any libraries, setup environment variables or > >> whatsoever. If the Maven artifacts were publicly available, all you > >>would > >> need to do is run "mvn install". Think this will make things a lot > >>easier > >> for people wanting to experiment on FlexJS. > >> > >> That IS very cool! > >> > >> One of these days, I’m going to have to figure out what Maven is… :-p > >> > >> > >Replying here, so that it benefits everyone who has this question. > > > >Maven makes building your app easy. If you have Maven installed on your > >machine, all you have to do is run 'mvn install' from the command line and > >your app gets built. You just need to have a pom.xml in your project > >directory. POM stands for 'Project Object Model' where you specify the > >build params, which plugins to use and which dependencies to download > >before attempting to build the app. > > > >Normally, Maven is used to build Java applications, but it supports a > >plugin architecture so other technologies (like Flex) can use it as well. > >Chris has created a plugin (much like the FlexMojos plugin) and has > >created > >a mavenized version of Apache Flex SDK (usually called artifacts) He has > >also worked in Adobe's licensing requirements so that users can accept the > >license terms for the Flash Player Global and AIR SDK. > > > >How does Maven know where to download these artifacts from? You upload it > >either to a public maven repository (usually > >http://repo1.maven.org/maven2) > >or to your own private installation of a maven repo. You specify the url > >in your local pom.xml file. Chris plans to upload the mavenized form > >Apache Flex SDK to this server so anyone can use it. Which means, no need > >for the end user to download the Installer and set things up. > > > >When you run 'mvn install' for the first time, maven locates the required > >artifacts from the given server using the unique artifact id and downloads > >it to a local cache. After that, it will use the cached version of the > >artifact until you change it in your pom.xml file. > > > >With this release, the barriers to create Flex and FlexJS applications > >will > >be reduced further. Some IDEs (ex. IntelliJ) support Maven out of the > >box. So, with this release, we will most likely get IntelliJ support for > >FlexJS for free. > > > >I have simplified things a bit to keep the explanation short. Please feel > >free to ask questions or correct me :-) > > > >Thanks, > >Om > > > > > > > >> Way to go! > >> > >> Harbs > >> > >> On Nov 13, 2014, at 5:03 PM, Christofer Dutz <christofer.d...@c-ware.de > > > >> wrote: > >> > >> > Hi, > >> > > >> > > >> > a few minutes ago I managed to have Flexmojos build the first ever > >> FlexJS application. > >> > > >> > https://www.dropbox.com/s/ab1hsaaqsyowzwr/it-lives.zip?dl=0 > >> > > >> > [ > >> > >>https://www.dropbox.com/static/images/icons128/page_white_compressed.png > ] > >>< > >> https://www.dropbox.com/s/ab1hsaaqsyowzwr/it-lives.zip?dl=0> > >> > > >> > Dropbox - it-lives.zip > >> > Dropbox is a free service that lets you bring your photos, docs, and > >> videos anywhere and share them easily. Never email yourself a file > >>again! > >> > Weitere Informationen...< > >> https://www.dropbox.com/s/ab1hsaaqsyowzwr/it-lives.zip?dl=0> > >> > > >> > > >> > This is a huge step for me. But I have to also report that it will > >> probably take quite a while until this feature will be in a releasable > >> state. Currently my build sort of looks like this: > >> > > >> > > >> > > >> > >> > http://www.qsl.net/sp5ddj/kit_w_zawodach_ratownictwo_gornicze_2003.jpg.JP > >>G > >> > > >> > > >> > and I will have to tweak quite a bit on Flexmojos and especially > >> FalconJX and FlexJS. > >> > > >> > > >> > But the fist big step is taken :-) > >> > > >> > > >> > The cool thing is that I am currently able to build a FlexJS > >>application > >> on a machine without any Falcon, FalconJX, ASJS, or even a FDK > >>installed. > >> No need to download any libraries, setup environment variables or > >> whatsoever. If the Maven artifacts were publicly available, all you > >>would > >> need to do is run "mvn install". Think this will make things a lot > >>easier > >> for people wanting to experiment on FlexJS. > >> > > >> > ? > >> > > >> > Chris > >> > >> > >