1. 程式人生 > 其它 >打包可執行jar檔案,沒有主清單屬性,部分依賴沒有打包。

打包可執行jar檔案,沒有主清單屬性,部分依賴沒有打包。

技術標籤:intellij ideaeclipse

專案場景:

對完成的java專案使用maven進行打包,並打包成可執行jar檔案。

問題描述:

mvn clean compile  
mvn clean package
java -jar xxx.jar

執行jar包時出現沒有

  • -SNAPSHOT.jar中沒有主清單屬性
  • resource資料夾的包沒有匯入

解決方法需要對專案中的配置檔案進行改動。


解決方案:

主清單屬性是指可執行jar包中的main函式,如果要執行jar包需要指明一個執行的入口,需要改動pom.xml。
新增:

<plugins>
	   <
plugin
>
<artifactId>maven-assembly-plugin</artifactId> <version>2.4</version> <configuration> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs
>
<archive> <manifest> <mainClass>com.noteligible.pojo.main</mainClass> </manifest> </archive> </configuration> <executions> <
execution
>
<id>make-assembly</id> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin>

其中mainClass指的是main函式的函式位置。


maven似乎預設不打包resource資料夾中的jar包,需要再pom.xml中新增:

<resource>
   <directory>src/main/resources</directory>
    <includes>
        <include>**/*.properties</include>
        <include>**/*.xml</include>
    </includes>
</resource>

directory>指明瞭需要打包的目錄路徑。