重编maven-二

maven生命周期:

maven的生命周期分为三个部分:

1.clean

      pre-clean:执行需要在clean之前完成的工作,即准备clean阶段;

      clean:移除所有上次构建生成的文件;

      post-clean:执行在clean之后立即需要完成的工作。


2.compile

     validate:顾名思义,校验;

     generate-sources:生成源文件;

     process-sources:复制并处理资源文件到目标目录,准备打包;

     generate-sources:生成源文件;

     process-sources:复制并处理资源文件到目标目录,准备打包;

     compile:编译源代码;(如果执行mvn compile:编译命令,则此生命周期到这儿为止)

     process-class

     generate-test-sources:生成源文件;

     process-test-sources:复制并处理资源文件到目标测试目录,准备打包;

     generate-test-sources:生成源文件;

     process-test-sources:复制并处理资源文件到目标测试目录,准备打包;

    test-compile:编译测试源代码;(如果执行mvn test:命令,则此生命周期到这儿为止)

    process-test-class

    test:使用单元测试框架进行测试,测试代码不会被打包或部署;

    prepare-package

    package:接收编译好的代码,打包成jarwar格式;(如果执行mvn package:命令,则此生命周期到这儿为止)

    pre-integration-test

    integration-test

    post-integration-test

    verify

    install:将包安装到本地仓库让其它项目依赖;(如果执行mvn install:命令,则此生命周期到这儿为止)

    deploy:将包发布到远程仓库,让其它开发人员使用。

3.site

    pre-site:完成在生成站点文件之前的工作;

    site:生成项目站点文档;

    post-site:完成在生成站点文件之后的工作,并为部署做准备。


maven插件:

maven在执行每个生命周期的时候,都会运行相关的插件。 

这里在compile的时候,使用了maven-compiler-plugin

<build>
  <plugins><!—— 插件的引入 —->
     <plugin><!—- 具体某个插件的引入 —->
       <groupId>
         org.apache.maven.plugin
       </groupId>
       <artifactId>
         maven-source-plugin
       </artifactId>
       <executions><!—- 绑定到某个生命周期中 ——>
	<execution>
           <phase><!—— 指定绑定生命周期 ——>
              compile
           </phase>
	<goals><!—— 执行的目标 ——>
           <!—— 将jar文件打包 ——>
	   <goal>jar</goal>
	</goals>
	</execution>
      </executions>
    </plugin>
  </plugins>
<build>


  插件主要是用于辅助完成生命周期,亦或指定在某个生命周期完成特定的工作,插件中也可以依赖,但在插件中的依赖只限于当前插件中使用。

<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-compiler-plugin</artifactId>
	<version>3.0</version>
	<configuration>
		<source>1.8</source>
		<target>1.8</target>
	</configuration>
</plugin>

以上插件用于设定java版本,不过现在设置java版本也可以通过:

<properties>
	<java.version>1.8</java.version>
</properties>

<properties>标签来指定。

maven插件现用先查,通过apache官网查询。


maven仓库:

maven的仓库分为三类:本地仓库、私有仓库和中央仓库,如果所有的jar下载都走中央仓库会使访问过大并且中央仓库速度慢。所以一般情况下都会配置一个私有仓库。

配置仓库一般有两种方式:

一、在maven项目中的pom.xml中配置:

<repositories>
		<repository>
			<id>nexus</id>
			<name>Central Repository</name>
			<url>
			http://127.0.0.1:8081/nexus/content/groups/public/
			</url>
		</repository>
</repositories>

以上代码配置一个私有仓库,这样就会让所有依赖的jar到上的url上去下载。

二、在maven安装目录下的settings.xml文件中配置:

 

 <mirrors>
    <mirror>
      <id>nexus</id>
      <name>Central Repository</name>
      <url>http://127.0.0.1:8081/nexus/content/groups/public/
	  </url>
      <mirrorOf>*</mirrorOf>
    </mirror>
  </mirrors>

以上配置了一个镜像, <mirrorOf>*</mirrorOf>中的*表示所有的jar下载都走镜像中的url,不会去中央仓库中找。

settings中可以配置多个仓库,然后指定启动某个仓库地址:

<profiles>
<profile>
	<id>dev</id>
	<repositories>
		<repository>
			<id>nexus</id>
			<name>dev-nexus</name>
			<url>>http://127.0.0.1:8081/nexus/content/groups/public/
			</url>
			<releases>
				<enabled>true</enabled>
			</releases>
			<!——snaphots默认是关闭的,需要手动开启——>
			<snapshots>
				<enabled>true</enabled>
			</snaphots>
		</repository>
	</repositories>
</profile>
</profiles>
<!——某个仓库为激活状态——>
<activeProfiles>
	<!——只有激活之后才生效——>
	<activeProfile>dev</activeProfile>
</activeProfiles>   


发布到nexus:

首先需要在pom.xml中配置:

<distributionManagement>
		<repository>
			<id>releases</id>
			<url>http://127.0.0.1:8081/nexus/content/repositories/releases
			</url>
		</repository>
		<snapshotRepository>
			<id>snapshots</id>
			<url>http://127.0.0.1:8081/nexus/content/repositories/snapshots
			</url>
		</snapshotRepository>
</distributionManagement>

以上代码分别表示release版和snapshots版发布到指定的nexus url

同时发布到nexus中需要权限,即需要在settings.xml文件中配置发布的用户名和密码如:

 

 <servers>
    <server>
      <id>deploymentRepo</id>
      <username>repouser</username>
      <password>repopwd</password>
    </server>
  </servers>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乐只乐之

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值