Closed GoogleCodeExporter closed 9 years ago
Have you tried this in your ivy settings file?
<classpath file="${build.lib.build.dir}/ivysvnresolver.jar"/>
<classpath file="${build.lib.build.dir}/trilead-ssh2.jar"/>
<classpath file="${build.lib.build.dir}/svnkit.jar"/>
<typedef
name="svn"
classname="fm.last.ivy.plugins.svnresolver.SvnResolver" />
Original comment by stvricbr...@gmail.com
on 15 Oct 2008 at 11:56
That is precily how I use ivy-svn in our ivySettings:
<classpath file="${ivy.settings.dir}/external_lib/ivysvnresolver-1.4-patched.jar"/>
<classpath file="${ivy.settings.dir}/external_lib/svnkit-1.1.8.jar"/>
<classpath file="${ivy.settings.dir}/external_lib/ssh2-build213.jar"/>
<classpath file="${ivy.settings.dir}/external_lib/commons-httpclient-3.0.jar"/>
<typedef name="svn" classname="fm.last.ivy.plugins.svnresolver.SvnResolver"/>
The patch in the other issues fixes the problem.
Maybe it's has something to do with that we are using ANT 1.5.
Original comment by jkyto...@gmail.com
on 16 Oct 2008 at 6:37
I tried setting up my classpath the same as yours and I still don't get that
error.
If you still get this using a beta version of Ivy 2.0.0 with Ant 1.7 let me
know,
otherwise unfortunately there's not much I can do about this.
Original comment by massdosage
on 16 Oct 2008 at 10:13
Original comment by massdosage
on 16 Oct 2008 at 10:16
Can't you make these 2 changes:
- } catch (IOException e) {
- Message.warn(("Could not load manifest: " + e.getMessage()));
+ } catch (Exception e) {
+ Message.warn(("Could not load manifest: " + e));
+ e.printStackTrace();
Catch all erros so that failing to read manifest woulnd't crash the whole build
And this fixes reading of manifest:
- String classFilePath = someClass.getPackage().toString().replace('.', '/')
+ "/"
+ className;
+ String classFilePath = someClass.getName().replace('.', '/') + ".class";
+ Message.verbose("IvySvnResolver classFilePath: " + classFilePath);
String pathToThisClass = someClass.getResource(classFileName).toString();
String pathToManifest = pathToThisClass.toString().substring(0,
- pathToThisClass.length() + 2 - ("/" + classFilePath).length())
- + "/META-INF/MANIFEST.MF";
+ pathToThisClass.length() - classFilePath.length()) +
"META-INF/MANIFEST.MF";
+ Message.verbose("IvySvnResolver pathToManifest: " + pathToManifest);
It seems that in my environment the getPackage() returns null.
The API
http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html#getPackage()
states:
" Returns:
the package of the class, or null if no package information is available from
the archive or codebase."
Original comment by jkyto...@gmail.com
on 16 Oct 2008 at 2:55
OK, I would rather not catch(Exception) if I can avoid it but I tried using the
code
you provided for getting the path to the manifest which doesn't use
getPackage() and
that seems to work fine. So I would like to use that. Are you happy for me to
include
it in IvySvn and release it under the Apache license? You will get credit in the
release notes for the fix. Let me know.
Original comment by massdosage
on 17 Oct 2008 at 12:25
[deleted comment]
This fix has been committed and will go into 2.0.0-beta5, thanks!
Original comment by massdosage
on 17 Oct 2008 at 6:10
Great, this removes the need to patch the release by ourself. Thank you!
Original comment by jkyto...@gmail.com
on 20 Oct 2008 at 11:51
Original issue reported on code.google.com by
massdosage
on 15 Oct 2008 at 10:25