File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Ant, Maven and Other Build Tools and the fly likes maven assembly and classpath issue Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Engineering » Ant, Maven and Other Build Tools
Bookmark "maven assembly and classpath issue" Watch "maven assembly and classpath issue" New topic

maven assembly and classpath issue

Juan Luis Prieto

Joined: Sep 25, 2009
Posts: 15
Dear all,

I'm having an issue with the classpath and the zip file that maven creates after running mvn assembly:assembly

The issue is this:
I'm having a problem reading an XML file that I read and use it as a template. My xml file is under /src/main/resouces/ and it is called slmData.xml
when I run the package and do the automatic tests my classes read the file and modify the xml this file is within the jar file.
However, when I create the zip file that contains all the jar dependencies my classes are not able to read this xml file.
Do you know if there's any issue with the class path when doing the assembly? my xml is still within the same jar as generated with the mvn package step.

What my cresources contains

My class:

What the jar (after mvn package) contains

What my zip file (after assembly contiains)

The stack trace:

do you see any issue why it doesn't find anything?

Peter Johnson

Joined: May 14, 2008
Posts: 5852

Did you check that the JAR gathered by assembly:assembly contains hte XML file?

Does XmlHelper.loadDocumentFromFile() read the file from the classpath? If it doesn't, then your code is not going to work. I suspect that within Maven the XML file was read from target/classes, and not from the JAR. You will have to change your code to load the XML file as a resource.

JBoss In Action
Juan Luis Prieto

Joined: Sep 25, 2009
Posts: 15
Hi Peter,

I'm sure that it is taking the xml file from the classpath as a resource file as I run it with a separate program for testing purposes.


I agree. Here's the link:
subject: maven assembly and classpath issue
It's not a secret anymore!