maven3.3.9的简单示例以及部署

参见: https://maven.apache.org/plugins/maven-deploy-plugin/

1、修改pom.xml 用于deploy
请按照下文 pom.xml   有颜色的内容  修改自己的pom.xml文件:
xml version = "1.0" encoding = "UTF-8" ?>
< 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 > com.chongshi.test groupId >
      < artifactId > hello artifactId >
      < version > 1.0 version >
      < name > Additional SchemaCrawler Lint name >
      < dependencies >
           < dependency >
               < groupId > junit groupId >
               < artifactId > junit artifactId >
               < version > 4.11 version >
               < scope > test scope >
           dependency >
           < dependency >
               < groupId > org.hsqldb groupId >
               < artifactId > hsqldb artifactId >
               < version > 2.3.3 version >
               < scope > provided scope >
           dependency >
           < dependency >
               < groupId > us.fatehi groupId >
               < artifactId > schemacrawler-lint artifactId >
               < version > ${schemacrawler.version} version >
           dependency >
      dependencies >
      < properties >
           < project.build.sourceEncoding > UTF-8 project.build.sourceEncoding >
           < schemacrawler.version > 14.07.03 schemacrawler.version >
      properties >

      < distributionManagement >
           <repository >
               <id >ssh-repo-1 id>
                <url >ftp://192.168.83.204/maven-deploy/ url>
           repository>
     distributionManagement >

      < build >
           <extensions >
              
               <extension >
                    <groupId >org.apache.maven.wagon groupId>
                    <artifactId >wagon- ftp artifactId>
                    <version >2.10 version>
               extension>
           extensions>

           < plugins >
               < plugin >
                    < groupId > org.apache.maven.plugins groupId >
                    < artifactId > maven-compiler-plugin artifactId >
                    < version > 3.3 version >
                    < configuration >
                         < source > 8 source >
                         < target > 8 target >
                    configuration >
               plugin >
           plugins >
      build >
project >

settings.xml文件内容:
xml version = "1.0" encoding = "UTF-8" ?>

<settings>
     <servers >
           <server >
               <id >ssh-repo-1 id>
               <username >root username>
              123456
           server>
     servers >
settings>

xml:tag: extensions:这部分内容是一个库,
你可以去:
pom.xml 仓库:
http://mvnrepository.com/
按照 groupId/ artifactId 搜索相关内容。
因为本人使用的ftp,所以 artifactId为: wagon- ftp
如果要修改这部分内容,请查阅相关文档!  否则请复制到你pom.xml相应位置即可!

注意:
pom.xml   xml:tag:distributionManagement repository:id 与
settings.xml  xml:tag:   servers:server:id 保持一致!      

settings.xml   中,可以很清楚的明白,这个连接配置。
pom.xml   xml:tag:distributionManagement: repository:url 表示目标地址
其他请参考: https://maven.apache.org/plugins/maven-deploy-plugin/examples/deploy-ftp.html


2 ftp命令检查,

因为我是从windows上传文件到linux上,一开始我执行命令: mvn deploy   发现:
出现类似如下错误:
 registered transporter factories: WagonTransporterFactory: java.util.NoSuchElementException 

在window的命令行上:

下面的解决办法参考: http://blog.csdn.net/bamuta/article/details/7448121

执行命令: ftp 192.168.83.204,发现竟然连接拒绝:
ftp: connect: Connection refused

在linux上执行命令: vsftpd /etc/vsftpd/vsftpd.conf &
如果出现: -bash: vsftpd: command not found,说明你的 vsftpd没有安装,自己安装一个 vsftpd,
可以试试:yum install -y  vsftpd

此后再次执行命令: vsftpd /etc/vsftpd/vsftpd.conf &

然后在windows的cmd上执行命令: ftp 192.168.83.204  
本人已经可以登录成功,

对于使用root用户登录ftp的:

下面的解决办法参考: http://www.linuxidc.com/Linux/2013-06/85395.htm

我用root登录,出现错误: 530 Permission denied解决方法
原来linux的ftp默认不允许使用root登录。
具体解决方法请参考链接 注释掉2个配置文件里的root 即可!

然后使用命令在 windows 的文件夹的url栏输入:ftp://192.168.83.204/
就能访问,在我的文件夹里显示了一个pub文件夹,但是没啥用,主要还是需要你右击文件夹选择登录。


3、开始部署

执行命令: mvn deploy

如果出现问题1:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-cli) on project hello: The packaging for this project did not assign a file to the build artifact -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

:出现这个问题,可能是因为在执行命令的时候多了一个deploy,或许你的命令是:mvn deploy:deploy,
尝试命令:mvn deploy


如果部署到本地,比如部署到d盘的某个地方,url可以类似如下:
< url > file:///D:\maven_tesyt url >


如果出现问题3:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy) on project hello: Failed to deploy artifacts: Could not transfer artifact com.chongshi.test:hello:jar:1.0 from/to ssh-repo-1 (ftp://192.168.83.204/maven-deploy/): Password not specified for repository ssh-repo-1 -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

在windows下:

通过命令 mvn deploy -X ,可以发现:
mvn从:[DEBUG] Reading user settings from C:\Users\wangl\.m2\settings.xml
这个位置来读取配置文件: settings.xml

到这个目前去看了下,原来之前的 .m2文件夹被我给删掉了,,那么手动创建一个, .m2文件夹
如果你发现你创建不了这个文件夹,那么请在命令行下创建 mkdir .m2 就可以了,
然后把类似上文中的 settings.xml  文件复制到 .m2文件夹 这个目录里来!
总之,需要把settings.xml 复制 到.m2文件夹下!


再次执行命令: mvn deploy

出现错误4:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy) on project hello: Failed to deploy artifacts: Could not transfer artifact com.chongshi.test:hello:jar:1.0 from/to ssh-repo-1 (ftp://192.168.83.204/maven-deploy/): Required directory: '/maven-deploy/' is missing -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

我本人用的url是: ftp://192.168.83.204/maven-deploy/  
问题还是出在这个url上。
一般情况下,我们通过ssh进去后,不管是你root还是xxx用户,都会进入到各自的~目录下,所以我在我的~目录 下建立了一个 maven-deploy文件夹。
所以在我看来,文件应该传递到 ftp://192.168.83.204/maven-deploy/   这个目录。可是很奇怪,为什么会找不到文件夹 /maven-deploy/???

下面的解决方案参考: http://stackoverflow.com/questions/14045094/maven-deploy-file-says-it-succeeded-but-no-files-are-actually-deployed

本人在这个问题上也是耗时了很久,具体就不说了。
反正是参考上面的连接,灵光一现,把绝对路径加上去,所以我使用了url: ftp://192.168.83.204//root/maven-deploy/
再次执行命令。我靠,有文件夹了,有文件了!!!! 
注意: 在ip后有一个/,在linux的绝对路径里,路径从跟位置/开始,所以 有2个//在ip+绝对路径的连接处。

我还尝试了 url:ftp://192.168.83.204//home/wl/project/maven-deploy/
也成功了。
原来ftp上传,这个url必须使用ip+绝对路径, 域名+路径的我没有测试过

如果出现问题5:
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ hello ---
[INFO] Building jar: C:\Users\wangl\hello\target\hello-1.0.jar
[INFO]
[INFO] --- maven-install-plugin:2.4:install (default-install) @ hello ---
[INFO] Installing C:\Users\wangl\hello\target\hello-1.0.jar to E:\maven\repo\com\chongshi\test\hello\1.0\hello-1.0.jar
[INFO] Installing C:\Users\wangl\hello\pom.xml to E:\maven\repo\com\chongshi\test\hello\1.0\hello-1.0.pom
[INFO]
[INFO] --- maven-deploy-plugin:2.7:deploy (default-deploy) @ hello ---
Uploading: ftp://192.168.83.204//home/wl/project/maven-deploy/com/chongshi/test/hello/1.0/hello-1.0.jar
Uploaded: ftp://192.168.83.204//home/wl/project/maven-deploy/com/chongshi/test/hello/1.0/hello-1.0.jar (5 KB at 90.8 KB/sec)
Uploading: ftp://192.168.83.204//home/wl/project/maven-deploy/com/chongshi/test/hello/1.0/hello-1.0.pom
Uploaded: ftp://192.168.83.204//home/wl/project/maven-deploy/com/chongshi/test/hello/1.0/hello-1.0.pom (2 KB at 220.3 KB/sec)
Downloading: ftp://192.168.83.204//home/wl/project/maven-deploy/com/chongshi/test/hello/maven-metadata.xml
Uploading: ftp://192.168.83.204//home/wl/project/maven-deploy/com/chongshi/test/hello/maven-metadata.xml
Uploaded: ftp://192.168.83.204//home/wl/project/maven-deploy/com/chongshi/test/hello/maven-metadata.xml (298 B at 32.3 KB/sec)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.630 s
[INFO] Finished at: 2016-03-18T09:32:50+08:00
[INFO] Final Memory: 12M/224M
[INFO] ------------------------------------------------------------------------

如果出现,上传成功,but没有找到文件,那么也是url问题!
【key:maven update success, but no files】
问题在你的url可能没有指对!!
或者在你的文件夹系统里好好找找,比如url: ftp://192.168.83.204/
【目标是linux】使用这个url,文件并没有被上传到 ~目录,,而是被上传在了 /根目录


最后,附上我的测试项目:
http://download.csdn.net/detail/oiooooio/9465260




你可能感兴趣的:(maven,java,maven)