maven 知识点复习

maven 安装插件

打包源代码插件demo

	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
		        <artifactId>maven-source-plugin</artifactId>
		        <version>2.2.1</version>
				<executions>
					<execution>
						<phase>package</phase>
						<goals>
							<goal>jar-no-fork</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>

maven 远程发布

	<distributionManagement>
		<snapshotRepository>
			<id>user-snapshot</id>
			<name>user-snapshot</name>
			<url>http://192.168.0.105:8081/nexus/content/repositories/user/</url>
		</snapshotRepository>
	</distributionManagement>


maven 配置私服的用户名和密码

	<server>
      <id>mvc-snapshot</id>
      <username>sharp</username>
      <password>123456</password>
    </server>
	<server>
      <id>user-snapshot</id>
      <username>sharp</username>
      <password>123456</password>
    </server>


maven 聚合管理

	<modules>
		<module>../mvc-core</module>
		<module>../mvc-dao</module>
		<module>../mvc-service</module>
		<module>../mvc-log</module>
	</modules>

maven 配置镜像

	 <mirror>
      <id>sharp</id>
      <mirrorOf>*</mirrorOf>
      <name>Human Readable Name for this Mirror.</name>
      <url>http://192.168.0.105:8081/nexus/content/groups/public/</url>
    </mirror>

maven 配置依赖管理

	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>junit</groupId>
				<artifactId>junit</artifactId>
				<version>${junit-version}</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>${project.groupId}</groupId>
				<artifactId>mvc-core</artifactId>
				<version>${project.version}</version>
			</dependency>
			<dependency>
				<groupId>${project.groupId}</groupId>
				<artifactId>mvc-dao</artifactId>
				<version>${project.version}</version>
			</dependency>
			<dependency>
				<groupId>${project.groupId}</groupId>
				<artifactId>mvc-service</artifactId>
				<version>${project.version}</version>
			</dependency>
			<dependency>
				<groupId>${project.groupId}</groupId>
				<artifactId>mvc-log</artifactId>
				<version>${project.version}</version>
			</dependency>
			<dependency>
			    <groupId>org.hibernate</groupId>
			    <artifactId>hibernate-core</artifactId>
			    <version>4.3.1.Final</version>
			</dependency>
		</dependencies>
	</dependencyManagement>

maven 配置继承关系


	<parent>
		<groupId>com.sharp.mvc</groupId>
		<artifactId>mvc-parent</artifactId>
		<version>0.0.1-SNAPSHOT</version>
		<relativePath>../mvc-parent/pom.xml</relativePath>
	</parent>

maven 配置jsp和  servlet 依赖

		<dependency>
			<groupId>servletapi</groupId>
			<artifactId>servletapi</artifactId>
			<version>2.4-20040521</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>javax.servlet.jsp</groupId>
			<artifactId>jsp-api</artifactId>
			<version>2.2.1-b03</version>
			<scope>provided</scope>
		</dependency>


配置jetty

		<plugins>
			<plugin>
				<groupId>org.mortbay.jetty</groupId>
				<artifactId>jetty-maven-plugin</artifactId>
			</plugin>
			<!-- <plugin> <groupId>org.codehaus.cargo</groupId> <artifactId>cargo-maven2-plugin</artifactId> 
				<configuration> 配置Tomcat在本地的路径 <container> <containerId>tomcat6x</containerId> 
				<home>D:\Tomcat6.0</home> </container> 配置容器信息 <configuration> statndalone表示独立运行,此时会在特定的目录加载一个相应的web项目, 
				不会加载tomcat中原有的项目 <type>standalone</type> 希望加载路径的目录 <home>D:/webservice/tomcat6</home> 
				properties中可以设置相应的端口的配置 <properties> 端口号设置7676为 <cargo.servlet.port>7676</cargo.servlet.port> 
				</properties> </configuration> </configuration> </plugin> -->

			<!-- <plugin> <groupId>org.codehaus.cargo</groupId> <artifactId>cargo-maven2-plugin</artifactId> 
				基于existing的方式,会把项目发布到系统的Tomcat中的webapps中 <configuration> <container> <containerId>tomcat6x</containerId> 
				<home>D:\Tomcat6.0</home> </container> <configuration> home设置为系统的tomcat目录 
				<type>existing</type> <home>D:\Tomcat6.0</home> </configuration> </configuration> 
				</plugin> -->
		</plugins>

配置tomcat


	<build>
		<finalName>mvc-user</finalName>
		<plugins>
			<plugin>
				<groupId>org.codehaus.cargo</groupId>
				<artifactId>cargo-maven2-plugin</artifactId>
				<configuration>
					<!-- 配置Tomcat在本地的路径 -->
					<container>
						<containerId>tomcat6x</containerId>
						<home>D:\tomcat_6.0</home>
					</container>
					<!-- 配置容器信息 -->
					<!--<configuration>
						 statndalone表示独立运行,此时会在特定的目录加载一个相应的web项目,
						不会加载tomcat中原有的项目 
						<type>standalone</type>
						 希望加载路径的目录 
						<home>D:/tomcat_6.0/blank</home>
						 properties中可以设置相应的端口的配置 
						<properties>
						 端口号设置7676为 
							<cargo.servlet.port>7676</cargo.servlet.port>
						</properties>
					</configuration>
				--></configuration>
			</plugin>

			<!--<plugin>
				<groupId>org.codehaus.cargo</groupId>
				<artifactId>cargo-maven2-plugin</artifactId>
				 基于existing的方式,会把项目发布到系统的Tomcat中的webapps中 
				<configuration>
					<container>
						<containerId>tomcat6x</containerId>
						<home>D:\tomcat_6.0</home>
					</container>
					<configuration>
						 home设置为系统的tomcat目录 
						<type>existing</type>
						<home>D:\tomcat_6.0</home>
					</configuration>
				</configuration>
			</plugin> 
		--></plugins>
	</build>


Maven的最重要的Default生命周期,绝大部分工作都发生在这个生命周期中,这里,我只解释一些比较重要和常用的阶段:

  • validate
  • generate-sources
  • process-sources
  • generate-resources
  • process-resources     复制并处理资源文件,至目标目录,准备打包。
  • compile     编译项目的源代码。
  • process-classes
  • generate-test-sources 
  • process-test-sources
  • generate-test-resources
  • process-test-resources     复制并处理资源文件,至目标测试目录。
  • test-compile     编译测试源代码。
  • process-test-classes
  • test     使用合适的单元测试框架运行测试。这些测试代码不会被打包或部署。
  • prepare-package
  • package     接受编译好的代码,打包成可发布的格式,如 JAR 。
  • pre-integration-test
  • integration-test
  • post-integration-test
  • verify
  • install     将包安装至本地仓库,以让其它项目依赖。
  • deploy     将最终的包复制到远程的仓库,以让其它开发人员与项目共享。

记住,运行任何一个阶段的时候,它前面的所有阶段都会被运行,这也就是为什么我们运行mvn install的时候,代码会被编译,测试,打包。


个人理解 :

这些生命周期相当于一系列默认插件的执行顺序,你输入其中的一个插件前缀名称(compiler),就相当于从开始目标(validate)执行到该插件最后一个目标(testCompile),后面如果加目标(goal)就表示只执行该插件,

例如clean compiler:compile  只执行clean 插件和compiler:compile插件,不会执行compiler:test-compile


执行命令的两种方式:

一种用prefixgoal+goal,另一种是phase

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值