【Java】Maven使用筆記

Maven通常被用於管理程序依賴,這部分需要配置Maven的settings.xml文件。一般必須配置的有兩個:

     1. 配置本地倉庫地址,用於緩存已經拉取得依賴,不用每次都去網絡上拉取:

 <localRepository>/mnt/hgfs/edrive/mavenrespository/.m2/repository</localRepository>

     2. 配置mirros,以下是常用的幾個鏡像:

 <mirror>
			<id>nexus-osc</id>
			<mirrorOf>central</mirrorOf>
			<name>Nexus osc</name>
			<url>http://maven.oschina.net/content/groups/public/</url>
		</mirror>
		<mirror>
			<id>nexus-osc-thirdparty</id>
			<mirrorOf>thirdparty</mirrorOf>
			<name>Nexus osc thirdparty</name>
			<url>http://maven.oschina.net/content/repositories/thirdparty/</url>
		</mirror>
		<mirror>
			<id>ibiblio.org</id>
			<name>ibiblio Mirror of http://repo1.maven.org/maven2/</name>
			<url>http://mirrors.ibiblio.org/pub/mirrors/maven2</url>
			<mirrorOf>central</mirrorOf>
			<!-- United States, North Carolina -->
		</mirror>

另外,很多時候還可以用Maven來構建/打包項目,需要在pom.xml文件裏定義build element:
<build>
		<!-- Include jar files in lib dir to build path -->
		<resources>
			<resource>
				<directory>lib</directory>
				<includes>
					<include>**</include>
				</includes>
			</resource>
		</resources>
		 
		<!-- Change maven build output dir -->
		<outputDirectory>${basedir}/WEB-INF/classes</outputDirectory>
		<pluginManagement>
			<plugins>
				<!-- Include jar files in lib dir to build path -->
				<!-- 
				<plugin>
					<artifactId>maven-compiler-plugin</artifactId>
					<configuration>
						<source>1.6</source>
						<target>1.6</target>
						<encoding>UTF-8</encoding>
						<compilerArguments>
							<extdirs>lib</extdirs>
						</compilerArguments>
					</configuration>
				</plugin>
				 -->
				
				<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>
		        <!-- Copy maven dependencies to given output dir during 'mvn compile' -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-dependency-plugin</artifactId>
				<executions>
					<execution>
						<id>copy-dependencies</id>
						<phase>compile</phase>
						<goals>
							<goal>copy-dependencies</goal>
						</goals>
						<configuration>
							<outputDirectory>${basedir}/WEB-INF/lib</outputDirectory>
							<excludeTransitive>false</excludeTransitive>
							<stripVersion>true</stripVersion>
						</configuration>
					</execution>
				</executions>
			</plugin>
			<!-- Create goal to generate runnable jar file which contains all dependent jar files, by running 'mvn assembly:single' -->
			<plugin>
				<artifactId>maven-assembly-plugin</artifactId>
				<configuration>
					<archive>
						<manifest>
							<mainClass>org.junz.exec.Main</mainClass>
						</manifest>
					</archive>
					<descriptorRefs>
						<descriptorRef>jar-with-dependencies</descriptorRef>
					</descriptorRefs>
				</configuration>
			</plugin>
		</plugins>
	</build>


最後是常用的一些命令:
1. mvn clean compile package
2. mvn install -DskipTests
3. mvn assembly:single
4. mvn exec:java -Dexec.mainClass="org.junz.exec.Main"
5. mvn archetype:generate
6. mvn tomcat:run

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章