Maven学习总结(二)

一  settings.xml中需要配置的内容

1.1 设置本地仓库

<localRepository>D:\develop\Maven\apache-maven-3.5.2\repository</localRepository>

1.2 修改JDK版本

		<profile>
			<id>jdk-1.7</id>
			<activation>
				<activeByDefault>true</activeByDefault>
				<jdk>1.7</jdk>
			</activation>
			<properties>
				<maven.compiler.source>1.7</maven.compiler.source>
				<maven.compiler.target>1.7</maven.compiler.target>
				<maven.compiler.compilerVersion>1.7</maven.compiler.compilerVersion>
			</properties>
		</profile>

1.3 修改镜像地址(不使用nexus时配置)  阿里云镜像

	   <mirror>
			<id>alimaven</id>
			<name>aliyun maven</name>
			<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
			<mirrorOf>central</mirrorOf>
		</mirror>

1.4  配置tomcat插件

<build>
		<plugins>
			<plugin>
				<groupId>org.apache.tomcat.maven</groupId>
				<artifactId>tomcat7-maven-plugin</artifactId>
				<version>2.2</version>
				<configuration>
					<!-- 控制tomcat端口号 -->
					<port>80</port>
					<!-- 项目发布到tomcat后的名称 -->
					<!-- / 相当于把项目发布名称为ROOT -->
					<!-- /abc -->
					<path>/</path>
				</configuration>
			</plugin>
		</plugins>
	</build>

  备注:右键项目--> run as --> maven build-->Goals 中输入

             clean tomcat7:run

1.5  资源拷贝插件

  1. maven默认只把src/main/resources里面的非.java文件进行编译到classes中
  2. 如果希望src/main/java下的文件也被编辑到classes中,在pom.xml中配置

2.1 下面内容配置在<build>中

                 <resources>
			<resource>
				<directory>src/main/java</directory>
				<includes>
					<include>**/*.xml</include>
				</includes>
			</resource>
			<resource>
				<directory>src/main/resources</directory>
				<includes>
					<include>**/*.xml</include>
					<include>**/*.properties</include>
				</includes>
			</resource>
		</resources>

1.6    热部署 

   1.6.1 修改tomat/conf/tomcat-users.xml添加

<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="tomcat" password="tomcat" roles="manager-gui,manager-script"/>

  1.6.2  在maven项目的pom.xml中tomcat插件的<configuration>里配置

                 <plugins>
			<plugin>
				<groupId>org.apache.tomcat.maven</groupId>
				<artifactId>tomcat7-maven-plugin</artifactId>
				<version>2.2</version>
				<configuration>
					<!-- 控制tomcat端口号 -->
					<port>80</port>
					<!-- 项目发布到tomcat后的名称 -->
					<!-- / 相当于把项目发布名称为ROOT -->
					<!-- /abc -->
					<path>/jqk</path>
					<username>tomcat</username>
					<password>tomcat</password>
					<url>http://192.168.1.10:8080/manager/text</url>
				</configuration>
			</plugin>
		</plugins>

1.6.3   右键项目--> run as --> maven build(以前写过,选择第二个) -->输入

           tomcat7:deploy   第一次发布

           tomcat7:redeploy  不是第一次发布.

 

二 使用nexus时settings中需要另外配置内容

2.1 修改镜像地址,本地maven直接连接私服Nexus

<mirror>     
      <id>nexus-releases</id>     
      <mirrorOf>*</mirrorOf>     
      <url>http://localhost:8091/nexus/content/groups/public</url>     
    </mirror> 
     <mirror>     
       <id>nexus-snapshots</id>     
      <mirrorOf>*</mirrorOf>     
       <url>http://localhost:8091/nexus/content/repositories/apache-snapshots/</url>     
     </mirror> 

2.2 设置profiles

<profile>
<id>nexusTest</id>
<repositories>
<repository>
<id>local-nexus</id>
<url>http://127.0.0.1:8081/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>  
</snapshots> 
</repository>
</repositories>
</profile>

2.3 激活<profile>内容

2.3.1下面内容直接添加到根节点下面(<settings>中)

<activeProfiles> <!--激活id为nexusTest的profile-->
<activeProfile>nexusTest</activeProfile>
</activeProfiles>

三  发布项目到私服步骤

3.1 在pom.xml中配置

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

3.2 在settings.xml中配置, <id>的值必须和pom.xml中<id>对应

       <server>  
        <id>releases</id>  
        <username>admin</username>  
        <password>admin123</password>  
      </server>  
      <server>  
        <id>snapshots</id>  
        <username>admin</username>  
        <password>admin123</password>  
      </server>  

3. 3 运行项目输入:deploy 

四 工作中常用的插件

4.1 finalName 设置打包的项目名字

 <build>
        <finalName>${project.artifactId}-${project.version}</finalName>
        <plugins>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
            </plugin>
            <plugin>
                <artifactId>maven-dependency-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.18.1</version>
                <configuration>
                    <skipTests>true</skipTests>
                </configuration>
            </plugin>
        </plugins>
    </build>
  1. Ant和Maven都是项目构建工具
  2. 在项目的运行编辑打包等过程都需要依赖于ant构建工
  3. <scope> jar有效范围 provided 表示编译期生效,不会打包发布到tomcat中
  4. 坐标  每一jar文件都有一个唯一坐标.通过坐标可以精确确定是哪个jar
  5.  坐标组成(下面三部分共同确定一个坐标)

     Group ID : 公司名.公司网址倒写

    Artifact ID : 项目名

    Version : 版本

  6. 填写项目信息  Packaging: 项目的类型,最终会被打包成什么类型

             jar : java项目

             war: web项目

             pom:逻辑父项目(父项目)

            只要一个项目有子项目必须是pom类型

dependencyManagement与dependencies

这样做的好处就是:如果有多个子项目都引入同一个依赖,则可以避免在每个使用的子项目里都声明一个版本,这样当想升级或切换到另一个版本时,只需要在顶层父容器里更新,而不需要一个一个子项目的修改;另外如果某个子项目需要另外一个版本,只需要声明versio就可
dependencyManagement里只是声明依赖,并不实现引入,因此子项目需要显示的声明需要用的依赖。

如果不在子项目中声明依赖,是不会从父项目中继承下来的;只有在子项目中写了该依赖项,并且没有指定具体版本,才会从父项目中集成该项,并且version和scope都读取自父pom
如果子项目中指定了版本号,那么会使用子项目中指定的jar版本。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值