maven pom進階教程 - 生成可執行的jar

maven的package階段調用maven-jar-plugin來生成jar,這個插件很簡單,只會把源碼生成的class打包到jar中,能夠做爲jar庫來使用,不能使用java -jar命令執行。 有另外兩個插件能夠生成可執行的jar: maven-shade-plugin和maven-assembly-plugin. ##maven-shade-plugin 它用來生成可執行jar和源文件的jar(它是專業生成jar的插件),官方資料http://maven.apache.org/plugins/maven-shade-plugin/index.html。這個插件須要使用maven-jar-plugin生成的jar包,所以使用這個插件時,不能關閉maven-jar-plugin插件
基本用法以下:html

<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-shade-plugin</artifactId>
	<version>3.0.0</version>
	<executions>
		<execution>
			<goals>
				<goal>shade</goal>
			</goals>
			<configuration>
				<transformers>
					<transformer
						implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
						<manifestEntries><!--生成manifest, key-value形式-->
							<Main-Class>test.child1.Main</Main-Class>
							<MyKey>myValue</MyKey><!--隨便寫-->
						</manifestEntries>
					</transformer>
				</transformers>
			</configuration>
		</execution>
	</executions>
</plugin>

##maven-assembly-plugin 這個插件能夠生成各類壓縮包,jar也是壓縮包的一種。示例以下java

<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-assembly-plugin</artifactId>
	<version>2.4.1</version>
	<configuration>
		<appendAssemblyId>true</appendAssemblyId><!--若是爲true,生成名jar文件的名字會很長,好比child1-1.0.0-jar-with-dependencies.jar,若是是false, 文件名相似於child1-1.0.0.jar-->
		<descriptorRefs><!--下面四個選項,根據須要選擇-->
			<descriptorRef>jar-with-dependencies</descriptorRef><!--生成一個包含依賴庫的jar-->
			<descriptorRef>src</descriptorRef><!--生成src的壓縮包 -->
			<descriptorRef>project</descriptorRef><!--生成整個項目的壓縮包-->
			<descriptorRef>bin</descriptorRef><!--生成jar的壓縮包,又壓了一次-->
		</descriptorRefs>
		<archive>
			<manifest>
				<mainClass>test.child1.Main</mainClass>
			</manifest>
		</archive>
	</configuration>
	<executions>
		<execution>
			<id>make-assembly</id>
			<phase>package</phase>
			<goals>
				<goal>single</goal>
			</goals>
		</execution>
	</executions>
</plugin>
相關文章
相關標籤/搜索