Java中Maven項目導(dǎo)出jar包配置的示例代碼
更新時間:2018年11月26日 15:17:10 作者:Strugglion
這篇文章主要介紹了Java中Maven項目導(dǎo)出jar包配置的示例代碼,需要的朋友可以參考下
具體代碼如下所示;
<!-- 第一種打包方式 (maven-jar-plugin), 將依賴包和配置文件放到j(luò)ar包外 --> <build> <sourceDirectory>src/main/java</sourceDirectory> <resources> <resource> <directory>src/main/resources</directory> <!-- 將<directory>目錄下的文件打包到<targetPath>下 --> <targetPath>${project.build.directory}</targetPath> <excludes> <exclude>**/*.java</exclude> </excludes> </resource> </resources> <testSourceDirectory>src/test/java</testSourceDirectory> <testResources> <testResource> <directory>src/test/resources</directory> <filtering>true</filtering> <excludes> <exclude>**/*.java</exclude> </excludes> </testResource> </testResources> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <configuration> <source>1.8</source> <target>1.8</target> <encoding>UTF-8</encoding> </configuration> </plugin> <!-- 將項目依賴包復(fù)制到<outputDirectory>指定的目錄下 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <executions> <execution> <id>copy-dependencies</id> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <outputDirectory> ${project.build.directory}/lib </outputDirectory> </configuration> </execution> </executions> </plugin> <!-- 將項目依賴包的路徑(與上一項中的<outputDirectory>對應(yīng))添加到classPath中 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <manifest> <addClasspath>true</addClasspath> <classpathPrefix>lib/</classpathPrefix> <mainClass>com.ctbri.echoRisk.ApplicationStart</mainClass> </manifest> <manifestEntries> <Class-Path>./</Class-Path> </manifestEntries> </archive> </configuration> </plugin> </plugins> </build>
<!-- 第二種打包方式 (maven-shade-plugin), 將依賴包和配置文件放到j(luò)ar包內(nèi) --> <build> <directory>${project.basedir}/target</directory> <finalName>${project.artifactId}-${project.version}</finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.21.0</version> <configuration> <skipTests>true</skipTests> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <configuration> <source>1.8</source> <target>1.8</target> <encoding>UTF-8</encoding> <compilerArguments> <extdirs>${project.basedir}/lib/</extdirs> </compilerArguments> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>3.1.0</version> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <minimizeJar>true</minimizeJar> <filters> <filter> <artifact>*:*</artifact> </filter> </filters> <transformers> <!-- 往MANIFEST文件中寫入Main-Class是可執(zhí)行包的必要條件。ManifestResourceTransformer可以輕松實現(xiàn)。 --> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <mainClass>com.ctbri.echoRisk.ApplicationStart</mainClass> </transformer> <!-- AppendingTransformer 用來處理多個jar包中存在重名的配置文件的合并,尤其是spring --> <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>
<!-- 第三種打包方式 (maven-assembly-plugin) --> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.21.0</version> <configuration> <skipTests>true</skipTests> </configuration> </plugin> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <configuration> <source>1.8</source> <target>1.8</target> <encoding>UTF-8</encoding> <compilerArguments> <extdirs>${project.basedir}/lib/</extdirs> </compilerArguments> </configuration> </plugin> <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> <archive> <manifest> <mainClass>com.ctbri.echoRisk.ApplicationStart</mainClass> </manifest> </archive> </configuration> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
總結(jié)
以上所述是小編給大家介紹的Java中Maven項目導(dǎo)出jar包配置的示例代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
Java開發(fā)之Spring連接數(shù)據(jù)庫方法實例分析
這篇文章主要介紹了Java開發(fā)之Spring連接數(shù)據(jù)庫方法,以實例形式較為詳細的分析了Java Spring開發(fā)中針對數(shù)據(jù)庫的相關(guān)操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-10-10Java實現(xiàn)學(xué)生成績輸出到磁盤文件的方法詳解
這篇文章主要為大家詳細介紹了如何利用Java實現(xiàn)將學(xué)生成績輸出到磁盤文件的功能,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下2022-11-11SpringBoot+MybatisPlus+代碼生成器整合示例
這篇文章主要介紹了SpringBoot+MybatisPlus+代碼生成器整合示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03Kafka利用Java實現(xiàn)數(shù)據(jù)的生產(chǎn)和消費實例教程
這篇文章主要給大家介紹了關(guān)于Kafka利用Java實現(xiàn)數(shù)據(jù)的生產(chǎn)和消費的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2018-01-01