標籤:元素 手動 gui config 程式 des uil path prefix
一、eclipse安裝好maven外掛程式之後,用maven的archetype建立一個OSGI項目,搭建好項目骨架。
二、可執行jar檔案分為兩種,一種是可通過命令列java -jar xxx.jar 可以直接啟動並執行jar檔案,一種是工其他jar檔案調用的jar檔案。第一種jar檔案的META-INF檔案夾下的manifest.MF檔案含有Main-Class值,第二種jar檔案則不包含。第一種的jar檔案可以直接啟動並執行原因是,其可以直接調用到其所依賴依賴的jar包,第一種方式是直接在manifest.MF檔案中配上Class-Path的值,第二種方式可以將所依賴的jar檔案一起打包進該jar包,可以通過maven外掛程式,下面提供兩種外掛程式方式。
第一種:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>com.sinoi.APP</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>
運行mvn clean package即可
批註:
經過我本人自測之後發現,這種方式雖然可以打包,但是不會將依賴包也添加進去。可以手動將依賴包配到<classpathPrefix>元素的路徑下,然後命令列運行。
第二種:
<plugin>
<groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>2.3</version>
<configuration>
<appendAssemblyId>false</appendAssemblyId> <descriptorRefs>
<descriptorRef>jar-with-dependencies<descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>com.HelloWorld</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>assembly</goal>
</goals>
</execution>
</executions>
</plugin>
運行mvn assembly:assembly ( 我自己使用mvn clean package也是可以的)
批註:
這個方式和方式1不同,這種打包方式,將項目及所依賴的所有jar檔案以類的方式打入jar包,讓打出來的JAR包成為一個可獨立啟動並執行JAR包
java開發GUI程式,用maven搭建環境