1. 程式人生 > >maven 打包可執行jar的方法

maven 打包可執行jar的方法

1.修改pom.xml增加如下內容

			<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.sysware.HelloWorld</mainClass>
						</manifest>
					</archive>
				</configuration>
			</plugin>

執行mvn clean package即可

2.在pom.xml增加如下內容

			<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.juvenxu.mvnbook.helloworld.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

3.

<build>
		<finalName>...</finalName>
		<sourceDirectory>src/main/java</sourceDirectory>
		<resources>
			<!-- 控制資原始檔的拷貝 -->
			<resource>
				<directory>src/main/resources</directory>
				<targetPath>${project.build.directory}</targetPath>
			</resource>
		</resources>
		<plugins>
			<!-- 設定原始檔編碼方式 -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<configuration>
					<defaultLibBundleDir>lib</defaultLibBundleDir>
					<source>1.6</source>
					<target>1.6</target>
					<encoding>UTF-8</encoding>
				</configuration>
			</plugin>
			<!-- 打包jar檔案時,配置manifest檔案,加入lib包的jar依賴 -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jar-plugin</artifactId>
				<configuration>
					<archive>
						<manifest>
							<addClasspath>true</addClasspath>
							<classpathPrefix>lib/</classpathPrefix>
							<mainClass>.....MonitorMain</mainClass>
						</manifest>
					</archive>
				</configuration>
			</plugin>
			<!-- 拷貝依賴的jar包到lib目錄 -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-dependency-plugin</artifactId>
				<executions>
					<execution>
						<id>copy</id>
						<phase>package</phase>
						<goals>
							<goal>copy-dependencies</goal>
						</goals>
						<configuration>
							<outputDirectory>
								${project.build.directory}/lib
							</outputDirectory>
						</configuration>
					</execution>
				</executions>
			</plugin>
			<!-- 解決資原始檔的編碼問題 -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-resources-plugin</artifactId>
				<version>2.3</version>
				<configuration>
					<encoding>UTF-8</encoding>
				</configuration>
			</plugin>
			<!-- 打包source檔案為jar檔案 -->
			<plugin>
				<artifactId>maven-source-plugin</artifactId>
				<version>2.1</version>
				<configuration>
					<attach>true</attach>
					<encoding>UTF-8</encoding>
				</configuration>
				<executions>
					<execution>
						<phase>compile</phase>
						<goals>
							<goal>jar</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>

4.

	<build>
		<resources>
			<resource>
				<targetPath>${project.build.directory}/classes</targetPath>
				<directory>src/main/resources</directory>
				<filtering>true</filtering>
				<includes>
					<include>**/*.xml</include>
				</includes>
			</resource>
		</resources>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.0</version>
				<configuration>
					<source>1.6</source>
					<target>1.6</target>
					<encoding>UTF-8</encoding>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-shade-plugin</artifactId>
				<version>2.0</version>
				<executions>
					<execution>
						<phase>package</phase>
						<goals>
							<goal>shade</goal>
						</goals>
						<configuration>
							<transformers>
								<transformer
									implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
									<mainClass>com.test.testguava.app.App</mainClass>
								</transformer>
								<transformer
									implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
									<resource>applicationContext.xml</resource>
								</transformer>
							</transformers>
							<shadedArtifactAttached>true</shadedArtifactAttached>
							<shadedClassifierName>executable</shadedClassifierName>
						</configuration>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>


相關推薦

maven 打包執行jar方法

1.修改pom.xml增加如下內容 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin<

Maven打包執行Jar的集中方法

一、無依賴其他任何jar <build> <plugins> <plugin> <groupId>org.apache.maven.plugins<

Maven打包執行Jar的幾種方法

一、無依賴其他任何jar <build> <plugins> <plugin> <groupId>org.apache.maven.plugins&

maven打包執行jar

version 打開 print cto tid directory tor group XML 創建一個文件夾haha,裏面包含三項 Haha.java Main.java pom.xml pom.xml <?xml version="1.0"

Spring Boot Maven 打包執行Jar文件!

project inux dep font feed spring 必須 connect plain Maven pom.xml 必須包含 [plain] view plain copy <packaging>jar</

spring-boot maven打包執行jar

一. pom.xml中加入依賴 <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-p

Spring Boot Maven 打包執行Jar檔案!

Maven pom.xml 必須包含<packaging>jar</packaging> <build> <plugins> <plugin> <groupId>org.sprin

spring boot maven打包執行jar

普通打包之後在程式目錄執行,或者編寫bat執行時會提示“沒有主清單屬性”,這是因為並沒有找到main()方法,需要我們指明告訴java程式 我bat中的程式碼 @echo off title mytitle java -jar ysl-ts-web-base-1.0-SNAPSHOT.jar pause

Maven 打包執行jar

有點時候我們專案不是通過IDEA 嚮導生成的spring-boot專案檔案,我們直接打出的jar包,通過java -jar xxxx.jar命令執行,報出xxx.jar中沒有清單屬性錯誤,這個時候我們需要指定jar的main入口和在jar包的MANIFEST.M

利用MAVEN打包執行jar包,包括依賴的第三方包

看下專案pom.xml的配置,首先要配置maven-jar-plugin,把自己的程式碼編譯打包成jar檔案,然後配置maven-assembly-plugin,把整個專案打包成一個釋出包。 Xml程式碼  收藏程式碼 <build>       <pl

maven 打包執行jar

Maven可以使用mvn package指令對專案進行打包,如果使用Java -jar xxx.jar執行執行jar檔案,會出現"no main manifest attribute, in xxx.jar"(沒有設定Main-Class)、ClassNotFou

Maven打包執行jar並且壓縮

1. pom.xml <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId>

maven打包執行jar

這裡介紹一下maven打包成可執行jar包 1.依賴處理 mvn dependency:copy-dependencies -DoutputDirectory=target/lib eclipse下對著工程右鍵->run as-> maven build...

maven 打包執行jar包的坑

寫作背景:首先是從20天的年假回來,新年的第一個任務是將使用者行為系統自動化。需要將Java專案打包成一個可執行的jar包,讓shell指令碼定時執行。 我一直習慣於用maven的maven install打包,在打包之前maven clean清理。於是,my

Maven打包執行jar 分離配置檔案和lib

類: classloader 產生的resourceAsStream只能載入classpath下的配置檔案,如果想載入其他目錄的檔案需要使用file的形式,maven專案src/main/resources/對應classpath,這個路徑下的檔案不打包,所以不能使用r

聚合maven+spring-boot打包執行jar

.so mave 一個 route source 兩種 惡心 兩種方法 color 整整搞了一天,終於解決這個問題了。這裏是四個module,module之間存在依賴,打包兩個可執行jar,看下最終效果吧 聚合maven+spring-boot的搭建很

maven外掛打包執行jar包到docker

pom.xml檔案新增docker外掛 <build> <plugins> <!-- docker的maven外掛,官網:https://github.com/spotify/docker-maven-plugin --> &l

eclipse使用MAVEN打包執行jar

1.新建maven工程 注意勾選 隨便填一下 建好之後工程目錄如下 新建測試類與工具類,主類很簡單 工具類也很簡單,就是初始化了日誌 maven依賴包也只有一個log4j的jar  <dependencies>   <dependency&

SpringBoot+Maven多模組專案(建立、依賴、打包執行jar包部署測試)完整流程

開發環境:IDEA,                   SprngBoot 2.0.4,                   Maven 2.19.1 工程結構:                              父工程father            

SpringBoot打包執行Jar方法。(已驗證)

1、修改pom檔案,加入打包外掛 <properties> <java.version>1.8</java.version> <project.build.sourceEncoding>UTF-8</pr