If you want to add your classes (or any other resources) to your ShrinkWrap archive to a non-root location, you can use the following:
@Deployment
public static JavaArchive deploy() {
// This is the classes and resources archive
JavaArchive ar;
ar = ShrinkWrap.create(JavaArchive.class, "resources.jar")
.addPackage(TestClass.class.getPackage());
/*
* The 'ar' archive will be added to the 'yourDir', so you'll
* end with test.jar#/yourDir/TestClassPackage/TestClass.class
*/
JavaArchive endArch;
endArch = ShrinkWrap.create(JavaArchive.class, "test.jar")
.merge(ar, "yourDir");
endArch.merge(ar, "yourDir");
return endArch;
}