Maven创建并管理Web项目(上传Web项目的API的JAR到Nexus 私服上)

目录

1.简介

2.安装Eclipse Maven插件

3.用Eclipse创建Maven Web项目

4.配置settings.xml 文件并下载项目依赖的JAR,并上传Web项目的api的JAR到Nexus 私服

1.简介

Maven、Nexus 私服的安装和配置和Maven的优点在Maven和
Sonatype Nexus私服的安装、配置及使用入门
已经有介绍了,这里就不在介绍了,今天我们要介绍Maven创建并管理Web项目,方便我们项目的开发和管理。

2.安装Eclipse Maven插件

我们要在Eclipse开发Maven项目,所以我们要安装Maven插件,我们这里通过在线安装,通过Eclipse的Help-->Install New Software,在 http 地址:http://m2eclipse.sonatype.org/sites/m2e,把选项勾上,然后下载安装,完成之后重启 Eclipse 即可。

3.用Eclipse创建Maven Web项目

我们这边创建Maven Web项目,创建了一个Parent项目然后里面包含了一个api(包含Entry和services接口)和一个 console(控制层和视图、services实现等)

第一步我们先创建Parent项目,右击New-->Maven Project

这边Packaging选择 pom

第二步我们创建JAR类型和WAR类型(Packaging选择JAR类型和WAR类型)

这里我们创建好Maven Web项目 项目目录是这样的

 4.配置setting.xml 文件并下载项目依赖的JAR,并上传Web项目的api的JAR到Nexus 私服

上面创建好项目后,为我们实现配置setting.xml 文件并下载项目依赖的JAR,并上传Web项目的api的JAR到Nexus 私服创建好条件,接下去讲是重点之一

第一步,我们要配置settings.xml 文件,因为settings.xml 告诉要到哪个Nexus
私服所依赖JAR或者上传到Nexus 私服上的,这个配置settings.xml 只是一部分,我们还要配置pom.xml文件。

配置settings.xml 文件,首先在Eclipse上配置关联我们自己的settings.xml文件

settings.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<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">

		  <localRepository>E:\nexus\.m2\repository</localRepository>

    <pluginGroups>

        <pluginGroup>org.mortbay.jetty</pluginGroup>
    </pluginGroups>
    <proxies>
    </proxies>
    <servers>
        <server>
            <!--maven发布库的id-->
            <id>releases</id>
            <username>admin</username>
            <password>admin</password>
        </server>

        <server>
            <!--maven快照库的id-->
            <id>snapshots</id>
            <username>admin</username>
            <password>admin</password>
        </server>

    </servers>

    <mirrors>

		<mirror>
			<id>central.m2</id>
			<name>one of the central mirrors</name>
			<url>http://192.168.74.129:8081/nexus/content/groups/public</url>
			<mirrorOf>*</mirrorOf>
		</mirror>
    </mirrors>

    <profiles>

        <profile>
            <id>dev</id>
			 <activation>
				<activeByDefault>true</activeByDefault>
				<jdk>1.6</jdk>
			</activation>
			<properties>
				<!-- 编译器相关信息 -->
				<maven.compiler.source>1.6</maven.compiler.source>
				<maven.compiler.target>1.6</maven.compiler.target>
				<maven.compiler.compilerVersion>1.6</maven.compiler.compilerVersion>
			</properties>
            <repositories>
                <repository>
                    <id>public</id>
                    <name>Public Repositories</name>
                    <url>http://192.168.74.129:8081/nexus/content/groups/public</url>
                    <layout>default</layout>
                    <snapshots>
                        <checksumPolicy>fail</checksumPolicy>
                        <enabled>true</enabled>
                        <updatePolicy>always</updatePolicy>
                    </snapshots>
                    <releases>
                        <checksumPolicy>fail</checksumPolicy>
                        <enabled>true</enabled>
                        <updatePolicy>always</updatePolicy>
                    </releases>
                </repository>
            </repositories>
            <pluginRepositories>
                <pluginRepository>
                    <id>public</id>
                    <name>Public Repositories</name>
                    <url>http://192.168.74.129:8081/nexus/content/groups/public/</url>
                    <layout>default</layout>
                </pluginRepository>
           </pluginRepositories>
        </profile>
    </profiles>
    <activeProfiles>
        <activeProfile>dev</activeProfile>
    </activeProfiles>
</settings>

说明:

1.localRepository 指定本地仓库存储路径,从Nexus 私服上下载JAR下来,保存的地方。

2.配置远程仓库列表 ;id:远程仓库唯一标识; name:远程仓库名称 url:远程仓库URL。

3.enabled:是否使用这个资源库下载这种类型的构件 默认值:true ; updatePolicy:指定下载更新的频率。这里的选项是:always(一直),daily(每日,默认值),interval:X(这里X是指分钟),或者never(从不);checksumPolicy:当Maven验证构件校验文件失败时该怎么做fail(失败)或者warn(告警)

3.activeProfiles 指定被激活的配置文件。

第二步:下载项目依赖的JAR

我们在POM.XML中加入要引入的JAR,Maven会自动的从Nexus 私服下载对应的JAR,我们在localRepository 指定本地仓库存储路径下就可以找到对应的JAR

第三步:我们想把我们的传Web项目的api提供给别人使用时,我们上传到Nexus
私服上供别人去下载使用,这里我介绍使用Maven命令上传,也可以使用手动上传。

我们在parent项目中POM.XML加入distributionManagement标签指定Nexus
私服的URL

test-maven-api类型是JAR,我们现在要把这个JAR打包并上传到Nexus 私服,首先我们先点击test-maven-api项目右击Run AS->Maven Install

这时JAR打包好了

我们用Maven命令上传,先点击test-maven-api项目右击Run AS->runconfiguration  然后Maven Build右击New 新建并Goals填入clean deploy

然后点击run 运行一下 就可以了,我们在console打印成功并在Nexus 私服上可以查看得到上传成功。

我们上传上去,方便别人去下载,不用我们每次要使用时,在打包给别人使用。

在这整个过程中,我们碰到的一些错误

1)我们在上传JAR时报一个错误,就是Nexus 私服的用户名和密码写错了,导致报错上传不了

我们在Eclipse关联的settings.xml中servers中的用户名和密码写对就可以。

2)我们在POM.XML引入依赖的JAR包时,版本很多时,我们没写版本,这个就会报找不到

这时我们要指定使用了哪个版本,这样就不会报找不到这个JAR包

时间: 2024-10-10 00:28:11

Maven创建并管理Web项目(上传Web项目的API的JAR到Nexus 私服上)的相关文章

超大文件上传(web应用---SSH框架)

struts提供的上传文件功能,文件太大就报错. 需要解决超大文件(几个G)上传的问题.断点续传的功能. 技术选型,查百度之后.最终选择了这个stream插件. stream官方资料地址:http://www.twinkling.cn/ 去下载源码.源码地址.项目源码托管在git.oschina.net,地址:http://git.oschina.net/jiangdx/stream 解压安装包之后,在eclipse中导入此项目.(注,这是一个Maven项目,服务器用的是tomcat 不是jet

SAE上传web应用(包括使用数据库)教程详解及问题解惑

转自:http://blog.csdn.net/baiyuliang2013/article/details/24725995 SAE上传web应用(包括使用数据库)教程详解及问题解惑:       最近由于工作需求,需利用SAE平台,但在使用过程中遇到不少问题,比如如何上传应用,上传应用完毕后打不开,mysql连接不上等等,以及云豆的计费问题,结合个人使用心得,将在本帖一一解答.       1,上传web应用首先,使用SAE平台需要注册自己的账号吧,这个就不说了,然后进入我的首页,会看到: 

如何用Maven创建一个普通Java项目

一下内容包括:用Maven创建一个普通Java项目,并把该项目转成IDEA项目,导入到IDEA,最后把这个项目打包成一个jar文件. 有时候运行mvn命令失败,重复运行几次就OK了,无解. 1.用Maven模板创建一个项目 打开控制台,进入到想要创建项目的目录,然后运行如下命令,参数自由填写: 1 mvn archetype:generate -DgroupId={project-packaging} 2 -DartifactId={project-name} 3 -DarchetypeArti

HDFS基本命令行操作及上传文件的简单API

一.HDFS基本命令行操作: 1.HDFS集群修改SecondaryNameNode位置到hd09-2 (1)修改hdfs-site.xml <configuration> //配置元数据存储位置 <property> <name>dfs.namenode.name.dir</name> <value>/root/hd/dfs/name</value> </property> //配置数据存储位置 <property

用jQuery File Upload做的上传控件demo,支持同页面多个上传按钮

需求 有这么一个需求,一个form有多个文件要上传,但又不是传统的图片批量上传那种,是类似下图这种需求,一开始是用的swfupload做的上传,但是问题是如果有多个按钮的话,就要写很多重复的代码,于为了代码的简洁所以就开始寻求其他的方法,期间试过uploadify,但是由于样式始终调不出来,最后就放弃了,直到发现这么个小巧的玩意,jQuery File Upload. 本文包含了upload的js实现,html的分析,css的实现等内容,文章末尾有git地址 最简运行时 官网下载的demo有N多

[转]html5表单上传控件Files API

表单上传控件:<input type="file" />(IE9及以下不支持下面这些功能,其它浏览器最新版本均已支持.) 1.允许上传文件数量 允许选择多个文件:<input type="file" multiple> 只允许上传一个文件:<input  type="file" single> 2.上传指定的文件格式 <input type="file" accept="im

09_Android中ContentProvider和Sqllite混合操作,一个项目调用另外一个项目的ContentProvider

1.  编写ContentPrivider提供者的Android应用 清单文件 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.itheima28.sqlitedemo" android:versionCode=&qu

创建Maven web项目时 出现 web.xml is missing and &lt;failOnMissingWebXml&gt; is set to true错误 pox.xml编译错误

今天创建一个maven项目 pom.xml出现如下错误: web.xml is missing and <failOnMissingWebXml> is set to true 这是因为你因为你WEB-INF下没有web.xml导致造成的 解决方案: 右击项目——>Java EE Tools——>Generate Deployment Descriptor Stub.然后系统会在src/main/webapp/WEB_INF文件加下创建web.xml文件.错误解决! 当然这个方法是

上传web端——个人项目

我用visual studio新建了一个web窗口,如图: 然后这里是系统自带的代码: [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [System.ComponentModel.ToolboxItem(false)] // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行. // [System.Web.Script.Services.ScriptService] public