Maven私服搭建及自定义Archetype(骨架)

文章目录

  •  搭建MAVEN私服
    •  为什么要用私服
    •  怎么搭建?
  •  Nexus
    •  下载
    • 安装
    • 配置
    • 运行
    • 添加第三方仓库
    • 添加本地仓库
  •  MAVEN配置 
    • settings文件配置 
    • 项目pom文件配置 
    • 上传
  •  自定义项目骨架
    •  什么是archeType 
    • 创建archetype
  •  手动创建  插件创建(推荐) 
    • 1.创建MAVEN项目
    • 2.创建archetype描述
    • 3.创建文件模板
    • 4.生成archetype
  • 使用自定义archetype

 一.搭建MAVEN私服

为什么要用私服

通过私服MAVEN能够更有效的管理自己的依赖包,像阿里云的短信jar包等第三方的依赖包,很多公服是没有的,在比如MAVEN是不支持多个仓库下载的,但是可以配置多个仓库。在私服上就可以解决以上问题。

怎么搭建?

我们使用Nexus来搭建我们的私有仓库。

Nexus下载

官网下载地址: https://www.sonatype.com/nexus-repository-oss
官网速度比较慢,windows用户可以通过我上传的资源进行下载。

安装

全部解压,注意要保证2个文件夹始终在同一层目录上。

配置

默认的端口号8081,可以在nexus-3.18.0-01\etc\nexus-default.properties文件中修改

端口号
application-port=8081
host
application-host=0.0.0.0

运行

下面为windows运行步骤,其他平台可以参考

  1. 进入nexus-3.18.0-01\bin目录下,你的后面版本可能和我的不一样
  2. 通过命令窗口执行以下命令nexus.exe/run
  3. 当看到state change RUNNING -> WAITING (OK)这种提示就代表启动成功了。

运行成功后可以在浏览器上输入 http://127.0.0.1:8081即可看到效果。

第一次启动,请根据向导一步步来,里面会告知密码在哪个文件中。

添加第三方仓库

进入后 登录账号:admin密码:你自己设置的密码

我们以阿里云为例,点击设置,选择Repositories,进入后创建仓库。

 

 

 

 创建类型选择maven2(proxy)

 

 阿里云仓库地址: http://maven.aliyun.com/nexus/content/groups/public/

 

 

然后回到主界面点击maven-public仓库,这个仓库就是我们在项目需要使用到的中央仓库了。

把你添加的仓库移到右边,就可以了。别忘记点击保存

添加本地仓库

仓库类型:

  • maven2(group) 仓库组,集成多个仓库,参考我们私服的中央仓库
  • maven2(proxy) 代理仓库,就是我们刚刚添加阿里云的仓库类型。
  • maven2(hosted) 本地仓库也就是我们把自己的依赖包上传的仓库

在上面的步骤下,我们选择maven2(hosted),除了名字必填,还有一项值得注意。

 

 如果选择Release,那么上传的依赖包版本必须为Release

注意

别忘了,把我们创建的仓库,添加到中央仓库中去哦。

MAVEN配置

   <server>
      <id>SNAPSHOT</id>
      <username>admin</username>
      <password>你的密码</password>
    </server>
    <server>
      <id>Releases</id>
      <username>admin</username>
      <password>你的密码</password>
    </server>

项目pom文件配置

在项目中pom.xml文件下,添加以下节点:
repository>id,要和上面的id一致,否则会上传失败

 <!--使用指定仓库-->
  <repositories>
    <repository>
      <id>nexus</id>
      <url>http://localhost:8081/repository/maven-public/</url>
    </repository>
  </repositories>


    <!--上传的仓库地址-->
  <distributionManagement>
    <repository>
      <id>Releases</id>
      <name>Releases</name>
      <url>http://localhost:8081/repository/3rd_part/</url>
    </repository>
    <snapshotRepository>
      <id>SNAPSHOT</id>
      <name>SNAPSHOT</name>
      <url>http://localhost:8081/repository/loc_SNAPSHOT/</url>
    </snapshotRepository>
  </distributionManagement>

上传

  1. 单模块
    在当前项目路径下,执行mvn deploy
  2. 多模块
    在父模块目录下,执行mvn deploy

二.自定义项目骨架

什么是archeType

在我们使用IDEA创建项目的时候,可以快速创建基本的模板,而这些模板就是使用archeType生成的。

创建archetype

假如我们有个Maven项目,他的项目结构和我们以往的都差不多,那么为了下次直接能够生产该项目结构,则可以把该项目创建一个archetype,方便我们下次自动生成

我们可以通过2中方法来创建模板

1.手动创建

1.创建MAVEN项目

修改项目中的pom.xml文件:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
 
  <groupId>my.groupId</groupId>
  <artifactId>my-archetype-id</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>maven-archetype</packaging>
 
  <build>
    <extensions>
      <extension>
        <groupId>org.apache.maven.archetype</groupId>
        <artifactId>archetype-packaging</artifactId>
        <version>3.1.1</version>
      </extension>
    </extensions>
  </build>
</project>

2.创建archetype描述

这一步主要就是用来生成的代码。

首先确保创建好了resources文件夹

src/main/resources/META-INF/maven/路径下,创建以下文件

文件名不能修改
archetype-metadata.xml

<archetype-descriptor
        xsi:schemaLocation="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0
        http://maven.apache.org/xsd/archetype-descriptor-1.0.0.xsd"
        xmlns="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        name="my-archetype-id">
    <fileSets>
        <fileSet filtered="true" packaged="true">
            <directory>src/main/java</directory>
        </fileSet>
        <fileSet>
            <directory>src/test/java</directory>
        </fileSet>
    </fileSets>
</archetype-descriptor>

这里的name="quickstart中的quickstart要对应项目中的artifactId

3.创建文件模板

resources/archetype-resources中,需要先添加pom.xml文件。

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>${groupId}</groupId>
    <artifactId>${artifactId}</artifactId>
    <version>${version}</version>
    <packaging>jar</packaging>

    <name>${artifactId}</name>
    <url>http://www.myorganization.org</url>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
</project>

随后可以在需要地方创建java代码。

总的项目结构如下图:

4.生成archetype

在项目路径下输入命令: mvn install 完成生成即可。

2.插件创建(推荐)

使用插件的方式创建是简单也是最快速的一种方式。

  1. 创建项目,或者使用以前的项目
  2. 进入到该项目中,输入命令mvn archetype:create-from-project
  3. 命令执行完后,进入到target/generated-sources/archetype文件夹中
  4. 在该文件中,执行命令mvn install

这种插件的方式非常让人省心,等待生成好后,即可以使用了。

此方式亲测可用

使用自定义archetype

可使用这种方式选择要创建的模板。

命令:mvn archetype:generate -DarchetypeCatalog=local

意思是生成项目,从本地获取到模板

 

 回车以后,会看到本地的模板列表,输入要用的模板即可。

参考:https://blog.51cto.com/u_13690151/3079758

https://maven.apache.org/archetype/maven-archetype-plugin/advanced-usage.html

https://maven.apache.org/guides/mini/guide-creating-archetypes.html

posted @ 2021-11-16 23:39  Vincent-yuan  阅读(503)  评论(0编辑  收藏  举报