目的:
1、分離代碼和依賴(包括第三方的引入包)
2、分離配置文件到外部
3、修改/META-INF/MANIFEST.MF中加載依賴包的位置和啟動類,包含第三方依賴jar包
先查看項目的結構
由於我的項目目前依賴的第三方的jar包,在src/lib/xxx.jar所有在打載入外部lib的時候也要把第三方依賴的包載入
<build> <finalName>bim-wm</finalName> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> <!--MANIFEST.MF 中 Class-Path 加入資源文件目錄 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <executions> <execution> <id>copy-dependencies</id> <phase>prepare-package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <outputDirectory>${project.build.directory}/lib</outputDirectory> <overWriteReleases>false</overWriteReleases> <overWriteSnapshots>false</overWriteSnapshots> <overWriteIfNewer>true</overWriteIfNewer> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.6</version> <configuration> <archive> <manifest> <!--指定入口類 --> <mainClass>com.jarvis.BimWmApplication</mainClass> <addClasspath>true</addClasspath> <!--MANIFEST.MF 中 Class-Path 加入前綴 --> <classpathPrefix>lib/</classpathPrefix> <!--jar包不包含唯一版本標識 --> <useUniqueVersions>false</useUniqueVersions> </manifest> <manifestEntries> <!--MANIFEST.MF 中 Class-Path 加入資源文件目錄 --> <Class-Path>./</Class-Path> <!-- 要是打入第三方依賴的包的時候,這個重點!!!否則可以忽視,在META-INF/MANIFEST.MF的Class-Path添加加載這3個jar包 --> <Class-Path>lib/olami-java-client-1.5.1-javadoc.jar lib/olami-java-client-1.5.1-full.jar lib/olami-java-client-1.5.1.jar</Class-Path> </manifestEntries> </archive> <excludes> <exclude>config/**</exclude> <!-- 需要過濾2個地方,防止重復將第三方的jar也打進來 --> <exclude>BOOT-INF/lib/olami-*.jar</exclude> <exclude>lib/*.jar</exclude> </excludes> </configuration> </plugin> <plugin> <artifactId>maven-resources-plugin</artifactId> <executions> <execution> <id>copy-resources</id> <phase>validate</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <outputDirectory>${project.build.directory}</outputDirectory> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> </resources> </configuration> </execution> </executions> </plugin> </plugins> </build>
最后是這樣的(重點是jar包只有200kb扔到服務器也比較方便)
將lib、xxx.jar、applicaion.xml扔到服務器中 ,用java -jar bim-wn.jar啟動即可!