轻jar

  现在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

原文地址:https://www.cnblogs.com/badwood316/p/15550326.html