Maven 学习总结

1、maven工程就是一个src目录和一个pom.xml文件,很简洁。

     直接用eclipse导入-maven工程 即可。不需要自己手工去找依赖的jar包,自己加src目录,test目录。

2、一个工程最终就是一个jar包,多个jar包,就是一个父工程下多个子工程。父工程只有一个pom文件,然后就是子工程的目录。pom中的package方式为pom,底下的模块就是子工程。eclipse导入时直接导入父工程即可。

3、eclipse已经自带了maven插件,很方便就可以建立一个maven工程。

4、maven约定,src下有main和test两个目录。main下有java和resource两个目录。test也可以有这两个目录。

    java下面放代码,resource下面放配置文件。

5、父工程的pom可以继承到子工程的pom中。

6、pom文件主要有依赖和build两个大标签。一个负责依赖的jar,一个设定插件的运行时间点和参数配置。

    还有依赖管理和插件管理两个标签,主要是在父pom中统一定义,然后再子pom中引用,感觉用处不大,用的时候只是少些一个版本号。

7、插件一般可以到maven网站上去搜索,可以看帮助或看源代码,确定它有几个goal,默认的绑定阶段,哪些参数可配(一个mojo就是一个goal,其它的东西都是通过注解标注的,自己看注解就可以)

<!-- 源代码打包插件 -->  
<plugin>  
    <artifactId>maven-source-plugin</artifactId>  
    <version>2.1</version>  
    <configuration>  
        <!-- <finalName>${project.build.name}</finalName> -->  
        <attach>true</attach>  
        <encoding>${project.build.sourceEncoding}</encoding>  
    </configuration>  
    <executions>  
        <execution>  
            <phase>compile</phase>  --绑定插件到编译阶段完成后自动执行
            <goals>  
                <goal>jar</goal>    --执行插件的这个goal
            </goals>  
        </execution>  
    </executions>  
</plugin>

7、使用ant 打tar.gz包

查看这个插件中有哪些goals

mvn help:describe -Dplugin={groupId}:{artifactId}:{version}

mvn help:describe -Dplugin=org.apache.maven.plugins:maven-antrun-plugin:1.8

	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-antrun-plugin</artifactId>
				<version>1.8</version>
				<executions>
					<execution>
						<id>hhhhhhhhh</id>
						<phase>install</phase>
						<configuration>
							<target>
								<property name="compile_classpath" refid="maven.compile.classpath" />
								<property name="runtime_classpath" refid="maven.runtime.classpath" />
								<property name="test_classpath" refid="maven.test.classpath" />
								<property name="plugin_classpath" refid="maven.plugin.classpath" />
								<tstamp>
									<format property="VERSIONDAY" pattern="yyyyMMdd" />
								</tstamp>


								<echo message="plugin classpath:  ${VERSIONDAY}" />
								<copy todir="target/version/classes/" overwrite="true">
									<fileset dir="target/classes/">
									</fileset>
								</copy>
                                <copy todir="target/version/" file="config.yml"/>	
                                <tar destfile="${name}${VERSIONDAY}.tar.gz" basedir="target/version/" compression="gzip" />						
							</target>

						</configuration>
						<goals>
							<goal>runl</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>

8、maven什么周期中的阶段

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     将最终的包复制到远程的仓库,以让其它开发人员与项目共享。  


9、maven -pl可以指定只运行几个子工程。

    maven test -Dtest可以指定类和方法,支持通配符。

    mvn install -Dmaven.test.skip=true

10、maven可以直接执行插件的goal,不需要在pom中配置,比如

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值