maven工程搭建、maven私服搭建、idea项目打包

简述

maven是啥我这里就不做介绍了,需要教程的可以私信我,文章主要介绍使用idea搭建maven工程

一。搭建maven服务端

通常网上说的搭建maven环境指的是搭建maven客户端,客户端默认从中央仓库( http://www.mvnrepository.com/ )下载jar包。

maven安装目录
  |--bin   Maven的可执行命令文件夹
  |--boot  Maven的引导程序(类加载器)
  |--conf  配置文件夹
  |--lib   Maven的核心程序代码

Maven的仓库分类

  • 本地仓库:本地缓存jar包的文件夹,通常我们会修改本地仓库地址

  • 远程仓库:也叫私服。一些企业、组织、社区自己搭建的仓库服务

  • 中央仓库:Maven官方团队提供的仓库,里边有最全的jar包

常用的项目构建命令:

  • 清理:mvn clean,清理target目录

  • 编译:mvn compile,编译主体程序代码,结果放在target目录里

  • 测试:mvn test,运行单元测试代码。要求:单元测试类放在src\test\java里,并且类名以Test结尾

  • 打包:mvn package,把主体程序代码打包。Java项目打包成jar包,web项目打包成war包

  • 安装:mvn install,把程序包安装到本地仓库。

依赖范围:在打包时需要设定scope作用域

(一)windows安装

用于项目开发

1.下载maven安装包

http://maven.apache.org/download.cgi

2.压缩包解压

3.配置环境变量

  • 增加MAVEN_HOME=Maven的解压目录

  • 修改Path中添加 %MAVEN_HOME%\bin

4.配置conf/setting.xml目录

指定jdk版本

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

改变仓库位置

默认在用户目录下,这样会占用C盘的空间: <localRepository>D:\server\maven</localRepository>

5.验证Maven配置

cmd命令:mvn -version

(二)linux安装

用于项目部署,当然你也可以选择不安装,在本地直接把依赖都打包到项目工程里面。

其他步骤均和windows一样,只有设置环境变量不一样

linux设置环境变量

设置环境变量 :

vim /etc/profile

在/etc/profile中添加以下几行

MAVEN_HOME=/usr/local/maven3
export MAVEN_HOME
export PATH=${PATH}:${MAVEN_HOME}/bin

执行source /etc/profile使环境变量生效

source /etc/profile

最后运行mvn -v验证maven是否安装成功,如果安装成功会打印如下内容

mvn -v

(三)maven聚合工程的创建

搭建maven聚合工程,可以把子模块建在父工程里面,也可以创建一个空项目把父工程和子工程做成同级目录后在pom添加依赖,需要注意的是父工程是做版本控制的,同时父工程里面有的包子工程都会自动继承。比如mybatis的依赖只有dao层使用,就不要添加到父工程中。

构建普通maven聚合工程详细步骤参考:https://www.cnblogs.com/limn/p/9363416.html

创建spring boot的maven聚合工程

你可以先创建普通maven聚合工程之后添加spring boot的起步依赖,也可以使用idea的spring initalizr创建工程后再设定聚合工程的父子关系(演示)。

(1)创建空项目用来放置项目

(2)设置maven环境

(3)创建父工程模块

添加起步依赖:注意有版本区别,后面的步骤确定即可

(4)创建子工程

后面一直确定即可

(5)建立父子依赖

父模块pom

子模块pom

(6)其他步骤

删除无用的文件

web目录没有webapps目录(参考):https://blog.csdn.net/fakerswe/article/details/80922536

补充pom文件

       比如你需要打包到私服就需要添加配置,内容参考文章后面的部分

(6)运行

这种方式创建的项目会自动创建程序入口,使用程序入口启动项目即可

idea项目打包

spring boot打包工具默认把运行文件打包到各模块的target目录下,生成的jar也在该目录下

直接丢上去运行可能会找不到类,这时我们可以充分的利用idea提供给我的打包设置。

war包

先设置编译输出实体,把编译后生成的文件按照web工程的方式设置,创建后默认的就可以

再设置输出war包实体

jar包

创建后再项目目录下会新增一个文件

结果验证

注意:这个操作一定要再添加依赖之后,如果新增依赖,需要重新设置实体。

这样打包所有的依赖都解压成class文件,如果你想打成jar的形式

你也可以把lib单独做一个文件夹打到一起(参考):https://blog.csdn.net/nopotential/article/details/79018471

总之打包你想怎么打就怎么打,想把依赖放哪就放哪,不过单独依赖单独打包就注意项目启动要设置classpath加载路径,否则会出现找不到依赖包的错误。

(四)搭建maven私服

私服服务器即是公司内部的 maven 远程仓库, 每个员工的电脑上安装 maven 软件并且连接私服服务器,员工将自己开发的项目打成 jar 并发布到私服服务器,其它项目组从私服服务器下载所依赖的构件(jar)。私服还充当一个代理服务器,当私服上没有 jar 包会从互联网中央仓库自动下载 ,个人开发是否安装私服根据实际需求,可以将本地依赖包上传到maven本地或者直接按照普通工程方式导入项目,这样就不需要安装私服。

特点

1.便于公司内部jar包调用

2.提高jar包下载速度

安装步骤

参考链接:https://blog.csdn.net/ffggnfgf/article/details/87120000

1.下载私服nexus安装包

https://www.sonatype.com/download-oss-sonatype>

2.解压安装包

   查看nexus的配置文件conf/nexus.properties

  

3.安装服务

使用管理员方式运行dos,切换到安装目录D:\server\nexus\nexus-3.20.1-01\bin,执行nexus.bat install

4.启动服务

或者使用nexus.bat start

启动成功

5.验证

管理界面http://localhost:8081/nexus

登入账号admin 新版本的密码不再是admin123

/sonatype/sonatype-work/nexus3/ 复制 admin.password 里 的密码登录即可,登录后,会提示要修改密码,修改密码后,会发现/nexus-data/admin.password 已经不在

6.卸载nexus

cmd进入nexus的bin目录,

停止服务

执行:nexus.bat stop

执行:nexus.bat uninstall

nexus仓库

1.仓库

仓库类型

hosted(宿主) :私服

    maven-releases : 指公司内部已经发布正式版本的项目 (自己开发)

​    maven-snapshorts : 指公司内部项目还处于测试版本的项目 (自己开发)

   ​ maven-3rd party : 私服配置指向第三方仓库 (其它公司开发 )

proxy(代理) :私服

   maven-central:代理仓库,代理中央仓库

   自己新增阿里云的仓库,提高下载速度,阿里云的maven仓库url为http://maven.aliyun.com/nexus/content/groups/public

    然后再public组里面讲这个aliyun-proxy仓库加入,排在maven-central之前即可。

group:仓库组

   maven-public:仓库分组,把上面三个仓库组合在一起对外提供服务,在本地maven基础配置settings.xml中使用

Nexus的调度任务

默认安装好之后是没有索引和jar文件的,因为你要自己定义任务去执行。

Nexus提供了一系列可配置的调度任务来方便用户管理系统。用户可以设定这些任务运行的方式,例如每天、每周等。调度任务会在适当的时候在后台运行。

要建立一个调度任务,单击左边导航菜单中的Tasks,点击Create Task,然后选择一个任务类型。

下几种常用类型的调度任务:

  • Execute script:执行自定义脚本
  • Purge开头:清理一些不使用的资源。
  • Rebuild repository index:为仓库重新编纂索引,从远仓库下载最新的索引。
  • Rebuild Maven repository metadata:基于仓库内容重新创建仓库元数据文件,同时重新创建每个文件的校验和md5与sha1。
  • Remove snapshots from Maven repository:把快照删了,这个是在稳定版发布后清除

Nexus搜索页

这个不需要登录就可以访问,用来查询jar包。支持模糊查询

Blob Stores

文件存储的地方,创建一个目录的话,对应文件系统的一个目录,可供仓库上传文件使用,如图所示:

 

本地Maven使用私服

安装和配置好之后,在开发中如何使用呢。可在maven的默认配置settings.xml中修改如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<servers>
    <server>
        <id>releases</id>
        <username>admin</username>
        <password>admin123</password>
    </server>
    <server>
        <id>snapshots</id>
        <username>admin</username>
        <password>admin123</password>
    </server>
</servers>

<mirrors>
    <mirror>
        <id>nexus</id>
        <mirrorOf>*</mirrorOf>
        <url>http://localhost:8081/repository/maven-public/</url>
    </mirror>
</mirrors>

<profiles>
    <profile>  
      <id>dev</id>
      <repositories>
        <repository>
          <id>Nexus</id>
          <url>http://localhost:8081/repository/maven-public/</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>true</enabled>
            <updatePolicy>always</updatePolicy>
          </snapshots>
        </repository>
      </repositories>
      <activation>
        <activeByDefault>true</activeByDefault>      
        <jdk>1.8</jdk>
      </activation>
      <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
      </properties>
    </profile>
</profiles>
<activeProfiles>
    <activeProfile>dev</activeProfile>
</activeProfiles>

如果要发布自己的jar到私服,就需要修改工程的pom.xml,添加如下内容,否则什么都不用做:

1
2
3
4
5
6
7
8
9
10
11
12
<distributionManagement>
  <repository>
    <id>maven-releases</id><!-- 需要与私服releases中配置的id一致 -->
    <name>itcast-releases</name>
    <url>http://localhost:8081/repository/maven-releases/</url>
  </repository>
  <snapshotRepository>
    <id>maven-snapshots</id><!-- 需要与私服snapshots中配置的id一致 -->
    <name>itcast-snapshots</name>
    <url>http://localhost:8081/repository/maven-snapshots/</url>
  </snapshotRepository>
</distributionManagement>

注意上面的repository的id值一定要跟settings.xml文件中配置的server一致。

上传到Nexus上,使用 mvn deploy 即可,开发的时候请使用snapshot版本,也就是version的后缀必须是-SNAPSHOT

1
2
3
4
<groupId>com.enzhico</groupId>
<artifactId>micro-pay-sdk</artifactId>
<version>1.2-SNAPSHOT</version>
<packaging>jar</packaging>

快照版成功效果

第三方Jar上传到Nexus

1
2
3
4
5
6
7
8
mvn deploy:deploy-file \
    -DgroupId=<group-id> \
    -DartifactId=<artifact-id> \
    -Dversion=<version> \
    -Dpackaging=<type-of-packaging> \
    -Dfile=<path-to-file> \
    -DrepositoryId=<server-id-settings.xml> \
    -Durl=<url-of-the-repository-to-deploy>

-DrepositoryId的值即为在setttings.xml里面配置的server id。

打包或发布的时候如果想跳过测试,加一个参数:

1
mvn clean && mvn deploy -DskipTests=true
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,你遇到了在使用IDEAMaven时出现私服报错的问题。这可能是由于配置问题或者网络连接问题导致的。下面是一些可能的解决方法: 1. 检查Maven配置:确保你的Maven配置文件(settings.xml)中正确配置了私服的URL和凭据。你可以在该文件中添加以下内容: ```xml <servers> <server> <id>your_server_id</id> <username>your_username</username> <password>your_password</password> </server> </servers> ``` 请将`your_server_id`替换为私服的ID,`your_username`和`your_password`替换为你的私服凭据。 2. 检查网络连接:确保你的网络连接正常,并且可以访问私服的URL。你可以尝试使用浏览器或者命令行工具(如curl或wget)访问私服的URL,以确认是否可以正常连接。 3. 清理Maven缓存:有时候Maven缓存中的某些文件可能会导致问题。你可以尝试清理Maven的本地仓库缓存,然后重新构建项目。你可以使用以下命令清理Maven缓存: ```shell mvn dependency:purge-local-repository ``` 4. 更新Maven依赖:如果你的项目依赖的某些库已经更新了版本,但是私服中还没有同步更新,可能会导致报错。你可以尝试更新你的项目依赖,或者在Maven配置文件中添加其他可用的仓库。 希望以上方法能够帮助你解决问题。如果问题仍然存在,请提供更多的错误信息和具体的配置细节,以便我们能够更好地帮助你。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值