So here's a working POM for RL2. There is some back and forth with Sonatype before we get it in Maven Central, but it's a start.
Unfortunately, as it is a Flash project (rather than Java), most of the dependencies are not hosted, meaning there's an runonce install script for each user before they can build. Maven requires all dependencies be hosted somewhere. It's not like Ant where you can just say - use every SWC in this folder. The install script simply installs all the libs into the user's local repository.
As such, it means that the POM will have to be updated if any dependency is added or an existing one changes.
As the project is in flux, it is suffixed as SNAPSHOT. I've removed the "v" prefix and added a dash (v2.0.0b1 = 2.0.0-b1) to conform with Maven versioning.
As builds are released, the SNAPSHOT should come off and deployments pushed to Maven Central.
Please feel free to add info to the developer/contributor section as you see fit.
Going forward I'm happy to keep the POM up to date, and perform releases. If you'd like me to be in charge of this, please let me know. If that's the case, it would be great if I could be notified me changes occur to any of the libs or to the Ant build, and indeed whenever a release is due to go out.
ignoring target files (for Maven builds)
early compilation working
Merge branch 'version2' of git://github.com/robotlegs/robotlegs-frame…
…work into version2
removed no constructor warning
fixing unit tests
updating deps for docs.
updated POM to include the XML resources
adding runonce scripts and maven read me
more pom changes and docs
switching to SNAPSHOT and replacing sources
Awesome, thanks so much Justin!
Me and Shaun just started working on this yesterday. We are using buildr instead of maven.
Buildr can also release to maven repositories(http://devboy.org:8081/nexus/content/repositories/artifacts/org/robotlegs/robotlegs-framework/2.0.0b1/),
so you will be able to require the artifact for your maven projects.
I am just setting up a fresh install of nexus on my server, but would like to know more about what steps we need to take to get RL2 onto maven-central!
With buildr we can work around the dependency issues and just bundle them inside the swc instead of hosting all RL2 dependencies in a maven repo.
The previous Maven developer opened this JIRA ticket: https://issues.sonatype.org/browse/OSSRH-288
it's what you need to get started. i believe all we need to do is create a jira account for sonatype, ensure everything is still cool, then we can deploy. There is a process to deployment, but it's not that tricky. Is this something you want to manage? If not I'm happy to.
i've not used buildr, but i think you might be confusing the issue when talking about bundling the swc deps.
In order to build Robotlegs from source - which is what the POM is for - you need to supply dependencies, and Maven needs to find them somehow. The options are:
Host the dependencies on Maven Central, meaning each dep needs their own build script and open source location. Flexunit is getting there and I'm helping Till getting this up with SS but there are still others.
Host the dependencies on an external nexus that the Robotlegs team control. This is obviously not optimal because of the cost and effort maintaining a remote repository.
Do not host the dependencies at all, and ensure that developers know to install the deps locally before trying to build from source.
Incidentally, Flexmojos has this problem as well. While Flexmojos is hosted on Maven Central, none of the Flex artifacts are (ie. the compiler and SDKs). Marvin (FM creator) uploads the Flash deps to a branch on Sonatype every time a new SDK is released - hence why we need the settings.xml to reference the "flexgroup" on Sonatype.
Hopefully one day soon Adobe will host their own Nexus repo and this situation will be resolved. =)
Looks like we just need to get approval for a deploy account by Sonatype, right?
I know the problems/options with maven, worked for too long with maven and flex-mojos.
We can use buildr to build from source and it's possible to resolve dependencies from maven and the filesystem,
that way we can use it right now without any extra work, and it will still be fine when (one day) all dependencies are hosted publicly somewhere.
I don't see any extra value we would gain from using maven right now.
That last sentence was a bit harsh, I just dislike Maven with a passion :)
I am really thankful you are working on the maven bits and there's no reason they can't live next to each other.
Btw: heres the current buildfile for RL2 -> https://github.com/robotlegs/robotlegs-framework/blob/version2/buildfile
Approval by Sonatype, yes. Whoever deploys should put their credentials into their local settings.xml and then run mvn deploy when a release is ready (removing the SNAPSHOT obv).
i understand your dislike of Maven. i just offered to the team because I was recently working with them and thought they could use the help getting Maven Central deployment. As you know, quite a lot of enterprise devs use Maven and it would be handy to have frameworks hosted on Maven Central. I'm not trying to step on anybody's toes =) If you're happy to manage the POM as part of the build process, then great! Just let me know if i can help.
Honestly, i've only just now taken a look at buildr-as3. At first glance it looks promising. I'm not much of a Ruby guy, but am always interested in different ways to simplify the situation.
You're not stepping on my feet, no worries.
If there is a demand to deploy robotlegs to maven, we should make that happen!
We can do that with maven or buildr.
We probably need to find a driving system that is used by the team, and update the others accordingly.
Also we cannot get rid of ANT as it is the most common build-system in the flash world.
Which means we need to support 3 build-systems, which is not an ideal situation.
Yesterday night I commited some updates to the buildr buildfile which will allow it to publish to my maven repo at artifacts.devboy.org (might look empty, but artifacts can be fetched from there. check also: nexus.devboy.org ).
I have two repositories available there, one for snapshot builds at snapshot.artifacts.devboy.org,
and one for release builds at release.artifacts.devboy.org.
Right now you can release to snapshot by calling:
buildr upload ruser=username rpass=password
Just ask me for the password.
Heres one build from yesterday: http://18.104.22.168:8081/nexus/content/repositories/snaphot.artifacts/org/robotlegs/robotlegs-framework/2.0.0b1-SNAPSHOT/
Jason, can you point me to the mvn-repo where flexunit is hosted?
Jason? You mean Justin?
The only real location for Flexunit at the moment is sonatype, on the Flexgroup branch that Marvin added. The latest version on there is 4.0-RC1. https://repository.sonatype.org/index.html#nexus-search;quick~flexunit
I'm in talks with Mike and Sim to help them out with a POM on Flexunit, and hopefully get it up onto Maven Central before too long...
That would be awesome, if you want to host at my repo (if maven central is not possible for some reason) I will gladly give you a deploy key.