您的位置:首页 > 其它

Maven项目构建工具和Nexus私服

2017-07-11 14:31 633 查看

Maven项目构建工具

简介

Maven是Apache组织的一个开源项目,采用Java语言开发,用于构建Java项目。

优势

maven负责管理 jar依赖,项目工程中不需要jar,因此项目工程很轻量

功能

编译 测试 运行 打包 部署

安装

下载官网http://maven.apache.org/压缩包,解压后配置环境变量

配置文件

conf/settings.xml

localRepository 节点,指定maven仓库的本地磁盘地址

 

jar下载方式

本地仓库 → 远程仓库(私服或中央仓库http://mvnrepository.com/

目录结构

src maven项目根目录

main 主目录

java java 代码目录

resources 配置文件目录

webapp web资源文件目录

test 测试目录

java java 测试代码目录

resources 测试配置文件目录

target 编译目录

命令

创建项目

创建 java 项目

mvn archetype:generate

-DgroupId={project.groupId}

-DartifactId={project.artifactId}

-Dversion={project.version}

-DarchetypeArtifactId=maven-archetype-quickstart

-DinteractiveMode=false

 

创建 java web
项目

mvn archetype:generate

-DgroupId={project.groupId}

-DartifactId={project.artifactId}

-DarchetypeArtifactId=maven-archetype-webapp

-Dversion={project.version}

-DinteractiveMode=false

 

例如:

mvn archetype:generate -DgroupId=org.kenny.demo -DartifactId=maven -DarchetypeArtifactId=maven-archetype-webapp -Dversion=1.0 -DinteractiveMode=false

 

编译项目,所有编译好的文件都放在target文件夹

mvn compile

 

清理编译文件,删除target文件夹

mvn clean

 

测试项目,运行test目录下的JUNIT测试

mvn test

 

打包项目

mvn package

java项目会打包成jar,java web项目会打包成war

 

打包后安装到本地仓库

mvn install

 

部署到远程仓库

mvn deploy

生命周期

1. clean生命周期 clean

 

2. default生命周期 compile test package install deploy

 

3. site生命周期 site

jar 依赖范围 <scope></scope>

1. compile (默认)

 

2. runtime 不参与编译,如 JDBC
驱动包

 

3. provided 不参与打包

 

4. test 不参与打包

依赖传递

1. 排除依赖

<exclusions></exclusions>

 

2. 版本锁定

<dependencyManagement>

</dependencyManagement>

POM继承

创建一个<packaging>pom</packaging>的maven项目

子项目中使用<parent></parent>实现继承

nexus私服

官网
https://www.sonatype.com/nexus-repository-sonatype

 

配置文件 etc/nexus-default.properties

基于jetty的maven私服,默认端口号8081

启动命令 nexus.exe /run

仓库类型

1. 代理仓库

2. 中央仓库

3. 宿主仓库(本地仓库)

4. 仓库组

打包项目并部署到私服

修改 conf/settings.xml,在servers节点中加入

<server>

<id>kenny-releases</id>

<username>admin</username>

<password>admin123</password>

</server>

<server>

<id>kenny-snapshots</id>

<username>admin</username>

<password>admin123</password>

</server>

 

在项目的pom.xml中加入

<distributionManagement>

<repository>

<id>kenny-releases</id>

<url>http://localhost:8081/repository/maven-releases/</url>

</repository>

<snapshotRepository>

<id>kenny-snapshots</id>

<url>http://localhost:8081/repository/maven-snapshots/</url>

</snapshotRepository>

</distributionManagement>

 

执行deploy命令部署到nexus

引用私服 jar

在maven的
conf/settings.xml 配置文件的profiles节点中加入

<profile>

<id>env-dev</id>

<repositories>

<repository>

<id>kenny-repo</id>

<url>http://localhost:8081/repository/maven-public/</url>

<layout>default</layout>

<releases>

<enabled>true</enabled>

</releases>

<snapshots>

<enabled>true</enabled>

</snapshots>

</repository>

</repositories>

a49b
<pluginRepositories>

<!-- 插件仓库,maven的运行依赖插件,也需要从私服下载插件-->

<pluginRepository>

<id>public-repo</id>

<url>http://localhost:8081/repository/maven-public/</url>

</pluginRepository>

</pluginRepositories>

</profile>

 

在 profiles
节点后加入,激活配置

<activeProfiles>

<activeProfile>env-dev</activeProfile>

</activeProfiles>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  maven nexus 管理 jar