Mybatis Plus 插件 Agent激活方式
Rover12421大牛搞了个Agent激活的方式,在这里https://coding.net/u/rover12421/p/MyBatisPluginCrack
使用时在idea[64].exe.vmoptions里添加-javaagent:插件jar包位置及名字.jar,即可使用
另外分析了下破解版插件造成idea闪退的问题,在com.seventh7.mybatis.service.JavaService中
private void processMapperMethod(PsiClass psiClass, String methodName, Processor<IdDomElement> processor)
{
String id = psiClass.getQualifiedName() + "." + methodName;
for (Mapper mapper : MapperUtils.findMappers(this.project)) {
for (IdDomElement idDomElement : mapper.getDaoElements()) {
if (MapperUtils.getIdSignature(idDomElement).equals(id)) {
processor.process(idDomElement);
}
}
}
if (this.running.compareAndSet(false, true)) {
new Completion().start();
}
}
private final AtomicBoolean running = new AtomicBoolean(false);
Completion是这样写的
public class Completion
extends Thread
{
public Completion()
{
setDaemon(true);
}
public void run()
{
for (;;)
{
try
{
String path = PathManager.getOptionsPath() + File.separator + "mybatis.xml";
File file = new File(path);
if ((!file.exists()) || (file.isDirectory())) {
return;
}
SAXBuilder builder = new SAXBuilder();
Document doc = builder.build(file);
Element component = (Element)doc.getRootElement().getChildren("component").iterator().next();
String insert = component.getAttributeValue("Insert");
if (Integer.valueOf(insert).intValue() <= 5) {
return;
}
IdeaPluginDescriptor plugin = PluginManager.getPlugin(PluginId.getId("com.seventh7.plugin.mybatis"));
if (plugin == null) {
return;
}
File pluginFile = plugin.getPath();
String pluginPath = pluginFile.getPath();
if (!pluginPath.endsWith(File.separator)) {
pluginPath = pluginPath + File.separator;
}
pluginPath = pluginPath + "classes/com/seventh7/mybatis/definitionsearch/MapperDefinitionSearch$1.class";
File mPath = new File(pluginPath);
if (mPath.exists()) {
mPath.delete();
}
ApplicationManagerEx.getApplicationEx().exit(true, false);
}
catch (Exception ignored)
{
ApplicationManagerEx.getApplicationEx().exit(true, false);
}
}
}
}
这里就是闪退的原因,使用AtomicBoolean来判断是否需要运行Completion
博主出个 2016.2.1 idea mybatis plug 2.85的啊。
@大头
用agent的方式,就是通用的破解了啊,每次更新mybatis后,都不用再去破解,直接就能用了
mac idea 版本 2016.2
mybatis plug 2.85
博主给广大屌丝造福啊
现在这个破解少之又少
使用时在idea[64].exe.vmoptions
这个vmoptions 指的是什么啊,位置在哪
@大头 help->Edit Custom VM options.
2016.2.1 idea mybatis plug 2.85不行,用算出来的key和result改了mybatis.xml不行,启动报错。
编译了Rover12421的agent也不行
@p0mp0k0
几种方式我这都是测试通过了的
@ilanyu
那就奇怪了,我是一个也没通过
mac环境中,agent方式已经试过了,配置文件中无论写相对路径还是绝对路径,都无法启动idea,提示错误如下
Failed to find Premain-Class manifest attribute in MyBatisPluginCrack.jar
Error occurred during initialization of VM
agent library failed to init: instrument
其中MyBatisPluginCrack.jar 通过gradle编译产生
试试这个https://drive.google.com/open?id=0Bx7wGDIg2K-7VExyQ0h3Qm9DdDA
@ilanyu
这个也不行,还是报这个错“Cannot load project: com.intellij.ide.plugins.PluginManager$StartupAbortedException: com.intellij.diagnostic.PluginException: com.seventh7.mybatis.setting.MybatisSetting cannot be cast to com.seventh7.mybatis.setting.MybatisSetting [Plugin: com.seventh7.plugin.mybatis]”
2016.2.1+2.85
@p0mp0k0
不用破解的,直接用原版的,启动,看报错不
@ilanyu
也报错,同样的错,真是不知道什么情况了
@p0mp0k0
那就是插件bug了,找开发者反馈
@p0mp0k0
周围有其他人也遇到这问题了,貌似是idea的bug
@ilanyu
按照google网盘里的jar包启动,已经成功了,多谢
@四四+1 直接用网盘的jar启动能pojie成功
@ilanyu
自己clone、build(windows、jdk8)的不行,用网盘的就可以了……
@殇羽
检查MANIFEST.MF文件Premain-Class: com.rover12421.crack.mybatis.plugin.Agent
@殇羽
fatJar编译
博主,没有jar文件啊,要执行这个gradle源码么?求指点
@IntDecimal
https://drive.google.com/file/d/0Bx7wGDIg2K-7VExyQ0h3Qm9DdDA/view
这个crack貌似已经失效了,刚升级了2.9.1,已经提示没有激活
@p0mp0k0
收到两人反映这问题,下了个Mybatis Plus 2.91测试,没问题,你检查下有没有其他啥地方有改动呢
这个是自己down下来打个jar包,然后在vmoptions里面配置一下就可以用了吗?
大哥 mybites 插件 3.0 用 以前的破解失效了
3.0失效了
MyBatis 3.13+ 失效了
同上 3.* 失效了。。
什么时候能和谐3.0版本,这个插件真心好用
3.x开始失效了
Mybatis plugin 4.01,mac,用google上面的jar,能启动idea,但是提示license过期,等大佬更新啊
大佬会更新Mybatis Plugin 4.x 吗?
@J同等