一 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 资源拷贝插件
- maven默认只把src/main/resources里面的非.java文件进行编译到classes中
- 如果希望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>
- Ant和Maven都是项目构建工具
- 在项目的运行编辑打包等过程都需要依赖于ant构建工
- <scope> jar有效范围 provided 表示编译期生效,不会打包发布到tomcat中
- 坐标 每一jar文件都有一个唯一坐标.通过坐标可以精确确定是哪个jar
-
坐标组成(下面三部分共同确定一个坐标)
Group ID : 公司名.公司网址倒写
Artifact ID : 项目名
Version : 版本
- 填写项目信息 Packaging: 项目的类型,最终会被打包成什么类型
jar : java项目
war: web项目
pom:逻辑父项目(父项目)
只要一个项目有子项目必须是pom类型
dependencyManagement与dependencies
这样做的好处就是:如果有多个子项目都引入同一个依赖,则可以避免在每个使用的子项目里都声明一个版本,这样当想升级或切换到另一个版本时,只需要在顶层父容器里更新,而不需要一个一个子项目的修改;另外如果某个子项目需要另外一个版本,只需要声明versio就可
dependencyManagement里只是声明依赖,并不实现引入,因此子项目需要显示的声明需要用的依赖。
如果不在子项目中声明依赖,是不会从父项目中继承下来的;只有在子项目中写了该依赖项,并且没有指定具体版本,才会从父项目中集成该项,并且version和scope都读取自父pom
如果子项目中指定了版本号,那么会使用子项目中指定的jar版本。