我已经使用antrun-plugin maven plugin启用了模糊处理。我的allatori-config.xml文件中没有keep-names:
<config>
<keep-names>
</keep-names>
<jars>
<jar in="${obf.jar}" out="${obf.jar}"/>
</jars>
<property name="log-file" value="target/allatori-log.xml"/>
</config>下面是我的maven插件配置:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<phase>package</phase>
<id>obfuscate2</id>
<configuration>
<target unless="${obfuscation.skip}">
<echo message="running allatori"/>
<property name="obf.jar" value="target/XYZ-${project.version}.jar"/>
<property name="runtime_classpath" refid="maven.runtime.classpath"/>
<taskdef name="allatori" classname="com.allatori.ant.ObfuscatorTask" classpath="${env.ALLATORI_LIB}/allatori.jar:${runtime_classpath}"/>
<allatori config="${basedir}/allatori-config.xml"/>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>我有两个模块(比如A和B),我想对它们执行模糊处理。现在,模块A被成功混淆,但是模块B(依赖于模块A)无法编译,因为“找不到符号”或“包com.mycomp.xyz.schema不存在”(其中这些包属于模块A)。
是不是这样,如果一个后来使用的模块首先被混淆,那么依赖的模块就无法获得依赖关系,或者我遗漏了什么?
发布于 2017-08-03 19:55:47
因此,它说它找不到包,这是非常明显的原因。包及其内容已经被混淆了。解决方案是将那些被引用的对象放在<keep-names>中,这样它们就不会被混淆。
https://stackoverflow.com/questions/44778011
复制相似问题