第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

maven: 打包可運(yùn)行的jar包及依賴項(xiàng)處理

標(biāo)簽:
Java

IDE环境中,可以直接用exec-maven-plugin插件来运行java application,类似下面这样:

 1 <plugin>
 2     <groupId>org.codehaus.mojo</groupId>
 3     <artifactId>exec-maven-plugin</artifactId>
 4     <version>1.2.1</version>
 5     <executions>
 6         <execution>
 7             <goals>
 8                 <goal>exec</goal>
 9             </goals>
10         </execution>
11     </executions>
12     <configuration>
13         <executable>java</executable>
14         <arguments>
15             <argument>-classpath</argument>
16             <classpath>
17             </classpath>
18             <argument>ctas.importer.reader.app.Program</argument>
19         </arguments>
20     </configuration>
21 </plugin>

18行,改成自己的Main-Class类,然后用mvn exec:exec来运行,但是部署到生产环境中时,服务器上通常并不具备maven环境,只能用 java -jar xxx.jar这种方式来运行,下面是一些处理细节:

 

一、依赖项的处理

java application运行时需要查找依赖的第三方jar,如果查找classpath失败,就会报错,可以先用

mvn dependency:copy-dependencies -DoutputDirectory=target/lib

命令,把依赖的jar包全部导出到target/lib这个目录下

 

二、利用maven-jar-plugin修改META-INF\MANIFEST.MF 清单文件

java application的最终jar里,用解压工具打开后,可以看到META-INF目录下,有一个重要的清单文件 MANIFEST.MF,这里面可以指定 Main-Class及classpath,结构如下:

1 Manifest-Version: 1.0
2 Built-By: jimmy
3 Build-Jdk: 1.7.0_09
4 Class-Path: lib/DataEntity-1.0.jar ...
5 Created-By: Apache Maven 3.2.3
6 Main-Class: ctas.importer.reader.app.Program
7 Archiver-Version: Plexus Archiver

其中第4行指定了classpath,也就是所依赖的jar包在什么地方,第6行表示main函数的入口类,默认情况下mvn clean package生成的jar包里,清单文件上并没有这2行,需要在pom.xml中添加插件

 1 <plugin>
 2     <groupId>org.apache.maven.plugins</groupId>
 3     <artifactId>maven-jar-plugin</artifactId>
 4     <configuration>
 5         <archive>
 6             <manifest>
 7                 <mainClass>ctas.importer.reader.app.Program</mainClass>
 8                 <addClasspath>true</addClasspath>
 9                 <classpathPrefix>lib/</classpathPrefix>
10             </manifest>
11         </archive>
12         <classesDirectory>
13         </classesDirectory>
14     </configuration>
15 </plugin>

第7行指定Main-Class,第9行指定classpath的相对路径,这样mvn package后,清单文件里就会自动添加Main-Class和Class-Path这二项

ok了,部署时把jar包和lib目录,都上传到服务器上 ,然后测试一下,顺利的话 java -jar  xxx.jar就可以了,如果要在后台运行,前面加 nohup

 

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消