现在java项目深度依赖spring,今天想做个轻jar。当然,IDEA和maven还是必须的
1、新建maven工程,勾选Create from archetype,以及下面的mave-archetype-quickstart。maven完成工作,空的项目就位。
2、maven打包出来的jar包运行报没有主清单属性,根本原因是manifest.mf文件中没有Main-Class属性。网上的2种方法,对我有效的是第2种:
- 在Module Settings中的Atifacts中新增一个jar from module with dependecies,并设置好main class,指定manifest.mf的路径(不要放在main/java下)
- 修改pom.xml,红色字体为新增内容:
<plugin> <artifactId>maven-jar-plugin</artifactId> <version>3.0.2</version> <configuration> <archive> <manifest> <addClasspath>true</addClasspath> <mainClass>App</mainClass> </manifest> </archive> </configuration> </plugin>
3、将依赖打入同一个包。网上方法好几种,能成功的是使用maven-assembly-plugin插件,但仍然要通过执行mvn assembly:assembly命令来打包。使用maven-shade-plugin插件的方法没再尝试了。详情可参见:https://www.cnblogs.com/zhangwuji/p/10040834.html