Export to GitHub

jarjar - issue #61

Class not included in jar but it should be


Posted on May 22, 2013 by Helpful Panda

What steps will reproduce the problem?

mkdir -p test/build/compiled cd test

wget "http://search.maven.org/remotecontent?filepath=com/google/guava/guava/14.0.1/guava-14.0.1.jar" wget "https://jarjar.googlecode.com/files/jarjar-1.3.jar" echo "keep com.test.GuideManifest" > rules

Compile GuideManifest.java, add it to a copy of the guava jar,

javac src/com/test/GuideManifest.java -classpath guava-14.0.1.jar -d build/compiled cp guava-14.0.1.jar build/guavaPlusClass.jar jar uvf build/guavaPlusClass.jar -C build/compiled/ .

Use jarjar to keep the class

java -jar jarjar-1.3.jar process rules build/guavaPlusClass.jar build/app.zip

What is the expected output? What do you see instead? I expect app.zip to contain com.google.common.io.CharStreams, as it's used by the GuideManifest class, but it's not included in app.zip.

What version of the product are you using? On what operating system?

$ java -version java version "1.7.0_21" OpenJDK Runtime Environment (IcedTea 2.3.9) (ArchLinux build 7.u21_2.3.9-4-x86_64) OpenJDK 64-Bit Server VM (build 23.7-b01, mixed mode)

jarjar-1.3.jar

Please provide any additional information below.

I noticed that if I remove the equals method (which should have nothing to do with this) then the CharStreams class (along with other com.google.common classes) is included in app.zip. The same if I remove the "&& other != null" part. It does not make any sense.

Attachments

Status: New

Labels:
Type-Defect Priority-Medium