前言
在接触了lombok之后由于对实现机制感兴趣,所以就开始学习Java agent,可是由于需要在MANIFEST.MF增加一些参数,所以就去maven的官网找相关资料。
MANIFEST.MF简介
MANIFEST.MF用于定义扩展和包相关数据的清单文件。
注意事项:
1. MANIFEST.MF中的数据是以key: value [value1 value2]形式存储
2. 冒号必须是英语的冒号:,冒号后面要带有一个空格
3. 如果value有多项要用空格隔开
4. 文件最后必须要有一个空行
maven在MANIFEST.MF文件增加参数
如果要在打jar包的时候在MANIFEST.MF文件中增加参数则需要使用maven-jar-plugin插件,有2种方法:
-
使用
<manifestFile>
来配置MANIFEST.MF的自定义参数所在的文件地址,建议放到项目的src/main/resources/META-INF/MANIFEST.MF文件中。且文件要遵守MANIFEST.MF的规范编写。<project> ... <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>3.0.2</version> <configuration> <archive> <!--使用manifestFile属性配置自定义的参数文件所在的--> <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> </archive> </configuration> ... </plugin> </plugins> </build> ... </project>
-
使用
<manifestEntries>
来设置自定义的MANIFEST.MF参数,配置如下:<project> ... <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>3.0.2</version> <configuration> <archive> <manifestEntries> <!--Premain-Class为key,这个<Premain-Class>中的值为value --> <Premain-Class>com.rjh.agent.MyAgent</Premain-Class> <Can-Redefine-Classes>true</Can-Redefine-Classes> </manifestEntries> </archive> </configuration> ... </plugin> </plugins> </build> ... </project>
maven官网参考资料:
http://maven.apache.org/shared/maven-archiver/
http://maven.apache.org/components/plugins/maven-jar-plugin/