Maven插件,而不是字节好友的javaagent?

Maven插件,而不是字节好友的javaagent?,java,build,instrumentation,byte-buddy,Java,Build,Instrumentation,Byte Buddy,可以用maven插件代替javaagent来减少应用程序的启动时间吗?许多ORM工具都有javaagent和maven插件,所以这应该是可能的——是吗?或者至少类似于“CompiledClassFileBuilder”的东西,在功能上类似于AgentBuilder:-) 问候,, Pavel完全可以在Maven插件中使用Byte Buddy。您可以在编译阶段之后为Maven目标实现ClassFileLocator,并使用ByteBuddy实例重新定义该文件夹中的类。API与转换器内部的Agent

可以用maven插件代替javaagent来减少应用程序的启动时间吗?许多ORM工具都有javaagent和maven插件,所以这应该是可能的——是吗?或者至少类似于“CompiledClassFileBuilder”的东西,在功能上类似于AgentBuilder:-)

问候,,
Pavel

完全可以在Maven插件中使用Byte Buddy。您可以在编译阶段之后为Maven目标实现ClassFileLocator,并使用ByteBuddy实例重新定义该文件夹中的类。API与转换器内部的AgentBuilder的API相同

不过,您需要实现这样一个插件。目前没有

但是请注意,这种静态转换有其局限性。使用插件,不可能重新定义VM的引导类。更改库类也很困难,因为它们是外部工件。最后,Byte Buddy可以注册需要在运行时设置的实时回调

更新:我刚刚添加了有问题的插件,并将在1.4.21版中发布一个Maven Byte好友插件。可以按如下方式添加转换:

<plugin>
  <groupId>net.bytebuddy</groupId>
  <artifactId>byte-buddy-maven-plugin</artifactId>
  <executions>
    <execution>
      <goals>
        <goal>transform</goal>
      </goals>
    </execution>
  </executions>
  <configuration>
    <transformations>
      <transformation>
        <plugin>net.bytebuddy.test.SimplePlugin</plugin>
        <!-- Optionally, specify groupId, artifactId, version of the class -->
      </transformation>
    </transformations>
    <!-- Optionally, add 'initialization' block with EntryPoint class -->
  </configuration>
</plugin>

net.bytebuddy
字节好友maven插件
使改变
net.bytebuddy.test.SimplePlugin
两个相关的接口
Plugin
EntryPoint
直接添加到库中并直接实现