If you are using m2e maven eclipse plugin then it should do the "right" thing
1. If it can resolve the dependency from your eclipse workspace, it will use the local class files 2. If not (lets say you close / delete the project) then it will use the jar files from your maven repository The RunJettyRun plugin simply uses your m2e classpath. The only problem comes with loading modules from the jar's manifest. When using local class files the manifest is not read. So you need an explicit @SubModule annotation but I don't see this as a huge problem. You can add the @SubModule this to your DevelopmentModule if you like, It's also fine to put it in your production AppModule since tapestry IOC checks for duplicates and never loads a module twice.