本人微信公众号"aeolian"~

GitHub建立个人Maven仓库

Maven

官网: https://maven.apache.org/repository/index.html

一、配置github

设置登录名name

    在github的个人设置中,设置好自己的姓名 。这个环节很重要,若不设置姓名,会出现一些一些意想不到的错误。maven的setting中的配置文件用户名都用这个。

《GitHub建立个人Maven仓库》

二、生成maven包到本地

修改pom文件发布到本地仓库

在需要发布的项目中的pom文件中的build -> pluginManagement -> plugins标签下加入以下插件:


<plugin>
    <artifactId>maven-deploy-pluginartifactId>
    <version>2.8.1version>
    <configuration>
        <altDeploymentRepository>internal.repo::default::file://${project.build.directory}/mvn-repoaltDeploymentRepository>
    configuration>
plugin>

《GitHub建立个人Maven仓库》

然后运行 mvn clean deploy 命令,即可在对应项目中的target/mvn-repo目录下找到本地的jar。

三、发布到github(失效)

修改mvn配置文件settings.xml

Win+R输入%MAVEN_HOME%打开maven安装目录,修改本地maven的配置文件settings.xml,找到其中的servers 标签,加入如下 配置:


    github
    github登录名
    github登录密码

修改pom文件properties中添加下列属性

关联setting.xml中使用哪个github的server。

<github.global.server>githubgithub.global.server>

添加远程发布插件

            
            
            <plugin>
                <groupId>com.github.githubgroupId>
                <artifactId>site-maven-pluginartifactId>
                <version >0.9version>
                <configuration>
                    <message >Maven artifacts for ${project.version}message>
                    <noJekyll>truenoJekyll>
                    <outputDirectory>${project.build.directory}/mvn-repooutputDirectory>
                    <branch>refs/heads/masterbranch>
                    <merge>truemerge>
                    <includes>
                        <include>**/*include>
                    includes>
                    <repositoryName>maven-reporepositoryName> 
                    <repositoryOwner>your setting namerepositoryOwner> 
                configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>sitegoal>
                        goals>
                        <phase>deployphase>
                    execution>
                executions>
            plugin>

依赖插件

        
        <dependency>
            <groupId>com.github.githubgroupId>
            <artifactId>site-maven-pluginartifactId>
            <version>0.9version>
            <type>maven-plugintype>
        dependency>

mvn clean deploy运行结果

《GitHub建立个人Maven仓库》

手动上传到github

发现github上并没有上传文件,于是新建了一个branch并上传。

### 在项目根目录上面
cd ./target/mvn-repo   #进入mvn包目录
git init   #初始化本地仓库
git add .   #添加文件
git status   #查看状态
git commit -m "maven仓库"  #提交到本地  
#关联到服务器,并没命名仓库为origin
git remote add origin https://github.com/AutKevin/maven-repo.git  
git branch repo    #创建repo分支
git branch -a    #查看所有分支
git checkout repo    #切换到repo分支
git push origin repo    #推送到origin远程仓库的repo分支

maven包上传到服务器格式如下,在maven-repo仓库下的repo分支中。依然读取不到。

《GitHub建立个人Maven仓库》

四、发布到ftp服务器(能发不能读,需和http服务器联用)

通过插件

官网: https://maven.apache.org/plugins/maven-deploy-plugin/examples/deploy-ftp.html

pom.xml中添加

<project>
  ...
  <distributionManagement>
    <repository>
      <id>ftp-repositoryid>
      <url>ftp://repository.mycompany.com/repositoryurl>
    repository>
  distributionManagement>
 
  <build>
    <extensions>
      
      <extension>
        <groupId>org.apache.maven.wagongroupId>
         <artifactId>wagon-ftpartifactId>
         <version>1.0-beta-6version>
      extension>
    extensions>
  build>
  ...
project>

setting.xml文件中配置

<settings>
  ...
  <servers>
    <server>
      <id>ftp-repositoryid>
      <username>userusername>
      <password>passpassword>
    server>
  servers>
  ...
settings>

然后执行mvn deploy

通过idea的Deployment

Setting -> Build,Execution,Deployment -> Deployment

《GitHub建立个人Maven仓库》

设置好要上传的文件夹

《GitHub建立个人Maven仓库》

上传成功如下:

《GitHub建立个人Maven仓库》

报错500 Illegal PORT command

《GitHub建立个人Maven仓库》

点击Advanced Options,勾上Passive mode

modprobe ip_nat_ftp
modprobe ip_conntrack_ftp

使用ftp发现能上传成功却不能读取。找不到原因。。。欢迎指教~

《GitHub建立个人Maven仓库》

五、通过tomcat发布

在webapp下面新建一个mvn文件夹,把项目发布到mvn项目下即可。

手动部署

在项目的pom.xml中添加:

<distributionManagement>
    <repository>
        <id>file-repositoryid>
        <url>file://D:\mvn-rpourl>
    repository>
distributionManagement>

运行mvn deploy命令可以看到在D:\abc目录下生成了目录和各种文件。将整个目录上传到Tomcat的webapps/mvn下面。

ssh自动部署

官方文档:https://maven.apache.org/plugins/maven-deploy-plugin/examples/deploy-ssh-external.html

<distributionManagement>
    <repository>
        <id>ssh-serverid>
        <url>scp://ip/home/java/apache-tomcat-8.5.5/webapps/mvnurl>
    repository>
distributionManagement>

<build>
    <extensions>
        <extension>
            <groupId>org.apache.maven.wagongroupId>
            <artifactId>wagon-ssh-externalartifactId>
            <version>1.0-beta-6version>
        extension>
    extensions>
build>

新建一个用户:https://www.cnblogs.com/aeolian/p/12449679.html

Maven的settings.xml中配置服务器的SSH用户名和密码:

<server>
    <id>ssh-serverid>
    <username>rootusername>
    <password>your-passwordpassword>
server>

执行mvn deploy

idea的Deployment(推荐)

使用idea的ftp发布,首先要建一个ftp用户并给用户指定文件夹赋予权限。

#进入到webapp目录
cd /usr/local/tomcat/apache-tomcat-7.0.54/webapps
#新建mvn文件夹
mkdir mvn 
#给mvn文件夹赋给ftp用户mvn
chown mvn:mvn mvn

然后用mvn用户名登录

《GitHub建立个人Maven仓库》

《GitHub建立个人Maven仓库》

点击Tools -> Deployment -> Browse Remote Host,进行upload。

六、GitHub Package

官网: https://help.github.com/en/packages/using-github-packages-with-your-projects-ecosystem/configuring-apache-maven-for-use-with-github-packages

生成Token

点击右上角头像,点击Setting -》 Developer settings -》Personal access tokens,写上备注,勾上权限。点击生成后一定要先复制Token,下次就不显示Token了。

 

《GitHub建立个人Maven仓库》 

Maven的Setting配置

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                      http://maven.apache.org/xsd/settings-1.0.0.xsd">

  
  <activeProfiles>
    <activeProfile>githubactiveProfile>
  activeProfiles>
  
  <profiles>
    <profile>
      <id>githubid>
      <repositories>
        <repository>
          <id>githubid>
          <name>GitHub OWNER Apache Maven Packagesname>
          <url>https://maven.pkg.github.com/OWNER/REPOSITORYurl>
        repository>
      repositories>
    profile>
  profiles>
  

  
  <servers>
    <server>
      <id>githubid>
      <username>USERNAMEusername>
      <password>TOKEN,注意这里是Token不是你的密码啊啊啊啊啊啊啊password>
    server>
  servers>
settings>

Pom.xml

<distributionManagement>
   <repository>
     <id>githubid>
     <name>GitHub OWNER Apache Maven Packagesname>
     <url>https://maven.pkg.github.com/OWNER/REPOSITORYurl>
   repository>
distributionManagement>

执行mvn deploy,注意!!!一定要把maven-deploy-plugin这个插件给注释掉,不然只会发布到本地,不会执行发布到远程服务器。

如果报错,可以使用mvn -e deploy或者mvn -X deploy查看详情。

《GitHub建立个人Maven仓库》

一直报Return code is: 401, ReasonPhrase: Unauthorized,检查了setting中的server配置的用户名密码正确,一天后发现password需要填的不是密码是token。

七、使用仓库

github package

在需要使用jar包项目的pom文件中添加github仓库,也可以在maven的setting中配置profile。无论哪种一定要用server的用户名和token。

    
    <repositories>
            <repository>
                <id>githubid>
                <name>GitHub autumn Apache Maven Packagesname>
                <url>https://maven.pkg.github.com/AutKevin/maven-repo/url>
                <snapshots>
                    <enabled>trueenabled>
                    <updatePolicy>alwaysupdatePolicy>
                snapshots>
            repository>
    repositories>

然后执行mvn install。

tomcat

tomcat的端口/项目名

        <repository>
            <id>tomcat-repositoryid>
            <url>http://52zt.info:88/mvnurl>
        repository>

添加依赖

<dependency>
    <groupId>com.autumngroupId>
    <artifactId>aeo-toolartifactId>
    <version>1.0.0version>
dependency>

参考:https://www.jianshu.com/p/98a141701cc7

点赞

Leave a Reply

Your email address will not be published. Required fields are marked *