-
Notifications
You must be signed in to change notification settings - Fork 41
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Ant changes to enable Calabash to be deployed to Maven Central #34
Conversation
|
BTW, if you have any thoughts on how #37 might interact, I'd be happy for a clue. |
Last commit should solve 1. I'm not familiar with the bnd task in #37, but what it looks like it's doing is just adding a lot of extra entries to the JAR file's manifest, and doing a diff of the created JAR confirms this. There's no reason I could see why this would cause any problems for Maven. The "jar" task that's been changed to use |
Hi Inigo, I've come back to this again and I have more questions.
|
Hi, You shouldn't rename lib, and you shouldn't run mvn compile... at the moment, you should just build using Ant as you normally would (and use . I haven't changed the project to be completely built in Maven, and using mvn on it at the moment won't work. If you like, I can change it so it will build in Maven - but Maven has specific ideas about directory structures and so on, so this would involve moving a bunch of things around, and require changes to your Ant build file and IDEA project files and so on. This isn't necessary to get Calabash available as a Maven dependency to other people, and I wouldn't particularly recommend it since you've already got a working Ant build. |
Inigo Surguy reply@reply.github.com writes:
Ok. I love how the complexity of Maven seems endless.
Norman Walsh ndw@nwalsh.com | In every work of genius we recognize |
Per our email, let's start this again after the next release. |
May I ask how the status is here? Was it started again? I'd also like to see official calabash artifacts on maven central as I use Ivy as dependency manager. |
No clue. I'll try to look again this weekend. |
@Vampire note that in the mean time you can use the artifact from the org.daisy group. It is built from a POM file from daisy-consortium/osgi-libs which just downloads the tagged source and re-build it using the vanilla Ant build. |
@rdeltour are you sure? I've seen these artifacts before, but I thought I have read somewhere that it is a patched version of Calabash. Nevertheless I'd prefer to use the official version from Norm directly. Also because you never know whether or when those Daisy guys update their artifact or decide to modify it before putting it into Maven Central. |
@Vampire I'm pretty sure, I'm the DAISY guy maintaining the artifact :). You're right that pre-1.0.8 versions were patched, primarily to include not-yet-official bug fixes or to tweak OSGi metadata. The artifact for 1.0.8 is built with the vanilla ant build, you can verify that from the POM file I linked previously — and you can do so for whatever subsequent version we push there. That said, I'm on the same boat. I'd rather use "official" artifacts rather than maintaining our own. @ndw let me know if I can help: one possibility is for you to copy the POM linked above and change the group ID. It's probably less elegant than an Ant-integrated solution as suggested in earlier comments, but on the other hand it's more decoupled and it's been proven to work OK. |
@rdeltour ah, ok, I see. :-) What about the dependency I mentioned? Currently I just use a hand-made Ivy artifact in our corporate Ivy repository. But something in Maven Central is preferable as source for the Corporate repo and for usage in OSS projects where I eventually would use it. :-) |
commons-httpclient is used for the implementation of the I kept the dependency-analysis report for my own documentation, if you want to have a look. |
Ah, forget what I said, I even added more dependencies as they are noted by calabash as non-optional dependencies. In my artifact I have the following dependencies defined: commons-codec | commons-codec | 1.6 So actually without any further thougth my question would change into whether you have all needed dependencies defined. :-) |
I think I have. E.g. commons-logging is not a direct dependency, it's a transitive dependency of commons-httpclient. I don't find traces of commons-io, it must be a transitive dependency of an optional one. |
Ok. I believe that 1.0.9 is available in Maven. Someone wanna check and see if I borked something? |
I cannot find it at the time of writing: It's probably not up on Central for sync reasons, but anyway what are the artifact's coordinates ? |
I haven't the faintest clue. Somewhere under "sonotype-nexus" whatever that is? |
I was actually talking about the artifact coordinates, which are made of 3 components: group ID, artifact ID, version. Another piece of info is the actual repository you've uploaded the artifact to. I suppose you used Sonatype's repository hosting service for open source software. Artifacts uploaded there will be synced to Maven Central automatically if they're not SNAPSHOT versions. You have to ask them to enable the sync via the issue tracker though. |
Oh, and it does seems to show up on Sonatype's OSSRH: I suppose it will be synced to Central when you ask them to enable the auto-sync. Thx for all this btw, and congrats on 1.0.9 ;) |
Can you get it from sonatype using ordinary maven commands, and does it work properly? |
I've not tried yet, but you can get it from the sonatype repo if this latter is declared as a repo in your Maven setting or local POM. |
So we're good and it's done? Except I have to remember to do the maven dance everytime I do a release. |
I believe some of the dependencies declarations can be improved (e.g. saxon updated to latest 9.4.x, htmlparser there, making tag soup optional, etc). But I'll create a new dedicate issue. Closing this one is fine by me. |
Ok. Thanks! |
Hi,
These changes enable Calabash to be deployed to Maven Central by running "ant maven-stage".
You'll also need to carry out some additional steps - signing up for an account on the Sonatype server, adding the appropriate Ant libraries, and so on - see the maven-build.txt for details.
If you'd rather not do those steps, let me know and I can deploy Calabash myself to Maven myself, but it would be better if you're able to do it (in particular, I don't have all the JARs at the moment to have a compile-everything work, so I've only tested with "compile").
Let me know if I can help with any of it - I'm by no means a Maven expert, but I've successfully deployed things to Maven Central before.
Inigo