使用MAVEN構建DUBBO服務可運行的JAR包

<build>
	   <finalName>dubbo-service-user</finalName>
	   <resources>
	   		<!-- 把src/main/resources目錄下的xml以及properties文件放到classes目錄下 -->
	   		<resource>
	   		  <targetPath>${project.build.directory}/classes</targetPath>
	   		  <directory>src/main/resources</directory>
	   		  <filtering>true</filtering>
	   		  <includes>
	   		  	<include>**/*.xml</include>
	   		  	<include>**/*.properties</include>
	   		  </includes>
	   		</resource>
	   		<!-- 結合com.alibaba.dubbo.container.Main,由於dubbo官方指定加載/META-INF/spring目錄下的配置 -->
	   		<resource>
	   			<targetPath>${project.build.directory}/classes/META-INF/spring</targetPath>
	   			<directory>src/main/resources/spring</directory>
	   		    <filtering>true</filtering>
	   		    <includes>
	   		  	  <include>spring-context.xml</include>
	   		    </includes>
	   		</resource>
	   </resources>
	    <pluginManagement>
			<plugins>
				<!-- 解決Maven插件在Eclipse內執行了一系列的生命週期引發衝突 -->
				<plugin>
					<groupId>org.eclipse.m2e</groupId>
					<artifactId>lifecycle-mapping</artifactId>
					<version>1.0.0</version>
					<configuration>
						<lifecycleMappingMetadata>
							<pluginExecutions>
								<pluginExecution>
									<pluginExecutionFilter>
										<groupId>org.apache.maven.plugins</groupId>
										<artifactId>maven-dependency-plugin</artifactId>
										<versionRange>[2.0,)</versionRange>
										<goals>
											<goal>copy-dependencies</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<ignore />
									</action>
								</pluginExecution>
							</pluginExecutions>
						</lifecycleMappingMetadata>
					</configuration>
				</plugin>
			</plugins>
		</pluginManagement>
		<plugins>
			<!-- 打包jar文件時,配置manifest文件,加入lib包的jar依賴 -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jar-plugin</artifactId>
				<configuration>
					<classesDirectory>target/classes/</classesDirectory>
					<archive>
						<manifest>
							<mainClass>com.alibaba.dubbo.container.Main</mainClass>
							<!-- 打包時 MANIFEST.MF文件不記錄的時間戳版本 -->
							<useUniqueVersions>false</useUniqueVersions>
							<addClasspath>true</addClasspath>
							<classpathPrefix>lib/</classpathPrefix>
						</manifest>
						<manifestEntries>
							<Class-Path>.</Class-Path>
						</manifestEntries>
					</archive>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-dependency-plugin</artifactId>
				<executions>
					<execution>
						<id>copy-dependencies</id>
						<phase>package</phase>
						<goals>
							<goal>copy-dependencies</goal>
						</goals>
						<configuration>
							<type>jar</type>
							<includeTypes>jar</includeTypes>
							<useUniqueVersions>false</useUniqueVersions>
							<outputDirectory>
								${project.build.directory}/lib
							</outputDirectory>
						</configuration>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>
相關文章
相關標籤/搜索