在pom.xml文件中加入以下信息,利用Maven的maven-shade-plugin插件進行打包。html
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>1.4</version> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <filters> <filter> <artifact>*:*</artifact> <excludes> <exclude>META-INF/*.SF</exclude> <exclude>META-INF/*.DSA</exclude> <exclude>META-INF/*.RSA</exclude> </excludes> </filter> </filters> <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <!-- 程序主入口 --> <mainClass>net.test.HelloWorld</mainClass> </transformer> <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> <resource>META-INF/spring.handlers</resource> </transformer> <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> <resource>META-INF/spring.schemas</resource> </transformer> </transformers> </configuration> </execution> </executions> </plugin> </plugins> </build>
其中<mainClass>net.test.HelloWorld</mainClass>標籤中配置的是項目程序的主入口,加入插件信息後的最終pom.xml文件以下:java
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>testDemo</groupId> <artifactId>HelloWorld</artifactId> <version>1.0.0</version> <packaging>jar</packaging> <name>HelloWorld</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>1.4</version> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <filters> <filter> <artifact>*:*</artifact> <excludes> <exclude>META-INF/*.SF</exclude> <exclude>META-INF/*.DSA</exclude> <exclude>META-INF/*.RSA</exclude> </excludes> </filter> </filters> <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <!-- 程序主入口 --> <mainClass>net.test.HelloWorld</mainClass> </transformer> <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> <resource>META-INF/spring.handlers</resource> </transformer> <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> <resource>META-INF/spring.schemas</resource> </transformer> </transformers> </configuration> </execution> </executions> </plugin> </plugins> </build> <dependencies> <dependency> <groupId>com.googlecode.log4jdbc</groupId> <artifactId>log4jdbc</artifactId> <version>1.2</version> <scope>runtime</scope> </dependency> <dependency> <groupId>com.microsoft.sqlserver</groupId> <artifactId>sqljdbc4</artifactId> <version>4.0</version> </dependency> <dependency> <groupId>oracle</groupId> <artifactId>ojdbc7</artifactId> <version>12.1.0.2</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.47</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.1.39</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.7</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>4.3.20.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>4.3.20.RELEASE</version> </dependency> <dependency> <groupId>javax.transaction</groupId> <artifactId>javax.transaction-api</artifactId> <version>1.2</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.0.1</version> </dependency> </dependencies> </project>
而後就能夠執行如下Maven命令進行打包了:mysql
mvn clean compile //清除以前target編譯文件並從新編譯 mvn clean package //對項目進行打包(由於配置過插件,因此jar包是可執行的) mvn clean install //安裝項目,而後就能夠使用了
也能夠使用IDEA自帶的maven管理工具代替執行上面的命令,以下圖所示,依次點擊藍色的部分便可打包成功:spring
測試:sql
打好包後,找到jar包位置,在jar包所在文件夾空白處 Shift + 右擊——在此處打開命令窗口,經過 java -jar 包名.jar 命令便可運行,以下圖所示:apache
即將Maven項目打包爲cmd可執行jar成功!json
在pom.xml文件中加入以下信息,利用Maven的maven-assembly-plugin插件進行打包。api
<plugin> <artifactId>maven-assembly-plugin</artifactId> <version>2.4</version> <configuration> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> <archive> <manifest> <mainClass>net.test.HelloWorld</mainClass> </manifest> </archive> </configuration> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin>
其中<mainClass>net.test.HelloWorld</mainClass>標籤中配置的是項目程序的主入口,而後就能夠執行如下Maven命令進行打包了:oracle
mvn assembly:assembly
也能夠使用IDEA自帶的maven管理工具代替執行上面的命令:maven
測試如上!!!
注:
成功後的jar包中META-INF 目錄中的 MANIFEST.MF,內容以下(下列屬性冒號後有一空格):
Manifest-Version: 1.0 Archiver-Version: Plexus Archiver Built-By: BigBoss Created-By: Apache Maven 3.3.9 Build-Jdk: 1.8.0_131 Main-Class: net.test.HelloWorld
建立bat命令文件運行打好的可執行jar包方法:http://www.javashuo.com/article/p-beaywugb-gb.html