javaagent
├─agent # 启动时的agent-jar
├─gradle-plugin # gradle插件
├─lib # 基础代码
├─maven-plugin # maven插件
└─test # 只有这个模块下有测试
- 理论上Jdk8以上都可以
- 只支持jar
- 只测试了java -jar 启动方式,没有测试tomcat原生启动方式
- 编译之后对class加密,之后再打成jar
- 用自己的方式使其能作为插件被打包工具使用;比如,将其上传到私有nexus服务
plugins {
id("fuck.world.re-compile-gradle") version "037-SNAPSHOT"
}
tasks.reCompilePlugin {
//true加密 false解密
encrypt = true
//加密用
pubKey = "d:\\pub"
//解密用
priKey = "d:\\pri"
}
别忘了修改setting.gradle.kts
pluginManagement {
repositories {
maven {
url = uri("http://192.168.1.23:36307/nexus/repository/maven-snapshots/")
// 如果仓库需要身份验证,配置用户名和密码
credentials {
username = "admin"
password = "password123"
}
isAllowInsecureProtocol = true
}
mavenCentral()
}
}
排除编译就好了
gradle jar -x compileJava
先修改setting.xml
文件在这里
├─gradle
└─setting.xml
再修改项目的pom.xml
<build>
<plugins>
<plugin>
<groupId>fuck.world</groupId>
<artifactId>re-compile-maven</artifactId>
<version>037-SNAPSHOT</version>
<configuration>
<!--加密用-->
<pubKey>d:\\pub</pubKey>
<!--解密用-->
<priKey>d:\\pri</priKey>
<!--true加密 false解密-->
<encrypt>true</encrypt>
</configuration>
</plugin>
</plugins>
</build>
打包agent gradle jar
java
# 用 :: 连接不同的参数
# priKey 私钥路径
-javaagent:./agent-001-SNAPSHOT.jar=priKey=d:\\pri::otherEnv=envValue
-jar ./demo-1.0-SNAPSHOT.jar fuck.world.Main