Java新手求助:如何编写Dummy实现确保指定Hibernate注解Jar被构建包含?
Got it, let's fix this build exclusion issue for your hibernate-commons-annotations upgrade. Since your build.xml is automatically stripping out JARs that aren't referenced in your code, creating a simple dummy class is the perfect workaround to force the updated JAR into your test environment build. Here's exactly what to do:
Step 1: Pick a Package for the Dummy Class
Choose a package in your project (ideally a utility or dummy-specific package) to place the class. For example, use something like com.yourcompany.project.dummy — replace this with your actual project package structure to keep things organized.
Step 2: Write the Dummy Class
Create a new Java class in that package with code that references a class from the hibernate-commons-annotations-4.0.4.Final.jar. You don't need any functional logic — just a simple reference to trick the build tool into detecting the JAR as "used".
Here's a working example:
package com.yourcompany.project.dummy; // Import a class from the target JAR to establish a reference import org.hibernate.annotations.common.reflection.ReflectionManager; /** * Dummy class to force inclusion of hibernate-commons-annotations-4.0.4.Final.jar * Required because WebLogic server upgrade needs this updated JAR, but build prunes unused dependencies */ public class HibernateAnnotationsDummy { // Static reference to a class in the target JAR — no need for methods or logic private static final Class<?> FORCE_JAR_INCLUSION = ReflectionManager.class; }
Why this works:
Your build.xml's exclusion logic scans for code references to classes in JARs. By adding this static reference to a class from hibernate-commons-annotations-4.0.4.Final.jar, the build tool will recognize the JAR as being used and won't exclude it from the test environment deployment.
Step 3: Verify the Build
- Compile your project to ensure the dummy class is included in the compiled output.
- Run your test environment build and check the deployment package (e.g., WAR/EAR file) to confirm that
hibernate-commons-annotations-4.0.4.Final.jaris present, and the old 4.0.1 version is removed.
Extra Tips
- If your project uses code obfuscation tools like ProGuard, make sure to add a rule to keep this dummy class (so it doesn't get stripped during obfuscation).
- Double-check your build.xml to ensure there are no explicit exclusions for the 4.0.4 JAR that might override this workaround.
内容的提问来源于stack exchange,提问作者Megha Arora

