包含外部文件以接收重命名库?

时间:2010-11-27 19:44:26

标签: java ant build obfuscation yguard

使用yguard我正在混淆一个项目,我想知道是否可以在建筑物外包含文件以仅接收库和函数新的命名模式?

例如,我正在混淆类com.MyClass.MyInternalClasses,在我的项目之外我有文件mysql.java和mysql.java里面我使用MyInternetClasses中的一些类但是因为我混淆了它,所以这个名字已经被变成别的东西让我们说com.AB

那么它会做的是读取该java文件并替换其上更改的所有混淆名称的名称。

或者什么是最好的approch呢?

1 个答案:

答案 0 :(得分:0)

通常,这种方法是对代码的主要部分进行模糊处理,但保持公共接口不被混淆 - 您使用keep元素指定它们。这样,代码的用户不需要知道混淆。如果您发现您的公共接口包含您希望混淆的代码,那么小的重新设计(使用一些委托,或创建一个公共的最小外观)应该使您能够将公众与“秘密”分开。

另一种方法是使用map元素手动指定您希望在外部使用的接口的重命名,然后您可以更改调用代码以使用这些名称。记录了由yGUARD应用的重命名,因此您可以从那里提取名称 - 但这开始变得混乱。