java战斗系列-战斗MAVENPW结构



实战中MAVEN私服的搭建

利用maven来管理项目的构建,报告和文档已经成为了我们如今的共识,不论什么开源软件基本都在使用,当然我们如今的大部分公司也基本都在使用,我把曾经使用maven的一些经验在进行加工呈现给大家,希望能够帮助一些当前正在学习maven的刚開始学习的人们还有刚毕业的学子们!

我会结合Eclipse+nexus+maven的实践来个大家做介绍!

Nexus是Maven仓库管理器,尽管我们能够从Maven中央仓库下载所须要的构件(artifact),但这样会让我们的编译过程变得相当的慢,架设一个本地Maven仓库server,在代理远程仓库的同一时候维护本地jar包仓库,能够节省带宽和时间,Nexus
oss版就是一款相当不错的软件。全然能实现我们的需求。

一:下载和安装Nexus

Nexus提供了两种安装方式

第一种是内嵌Jetty的bundle,仅仅要你有JRE就能直接执行。

另外一种方式是WAR,你仅仅须简单的将其公布到web容器中就可以使用

笔者本次使用另外一种方式war包方式部署。

安装环境:

Jdk6

Tomcat6

Centos6.3的硬件环境

注:linux下环境的配置就不在说明了。

1)Linux系统下可採用wget方式下载

wgethttp://www.sonatype.org/downloads/nexus-2.8.0.war

建议直接把包下载到tomcat的webapp文件夹下。

2)windows页面下载方式

windows下安装我们进入下载页面:

下载地址:http://www.sonatype.org/nexus/,例如以下图

选择红色框框住的button,OSS版是开源的免费的,进入下载页面。例如以下图:

点击红色框框住的部分,进入下载页面,选择2.8.0版本号,选中右側的的war包部署方式,例如以下图:

启动tomcat,在浏览器中输入:

http://192.168.1.106:8080/nexus-2.8.0/

假设启动成功就会显示该页面。点击右上角Login。

username admin

password admin123



watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYW5keV9neA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center">

进入主页面,点击红色框圈住的部分就能够看到Repositories的所有信息。将type列为proxy的三条记录的Download
Remote Indexes设置为true。

至此Nexus的Maven仓库管理器已经搭建好了!

二:下载和部署MAVEN

Maven是基于项目对象模型(POM)。能够通过一小段描写叙述信息来管理项目的构建,报告和文档的软件项目管理工具。

我们要在自己的开发机上安装MAVEN。并配置环境变量,设置连接私服的配置文件。

下载地址:http://maven.apache.org/download.cgi

最新版apache-maven-3.2.1-bin.zip

解压缩到随意一个盘下。

环境变量设置

变量值:

D:\work\work-tools\maven\apache-maven-3.2.1-bin\apache-maven-3.2.1

验证是否设置成功进入dos界面。输入mvn –version,显演示样例如以下图就说明配置成功。

2)改动配置文件,以便连接到我们刚搭建好的私服

打开文件夹下的settings.xml文件。

(该文件夹是你自己解压缩后的文件夹,我的是解到了D盘下)

D:\work\work-tools\maven\apache-maven-3.2.1-bin\apache-maven-3.2.1\conf

第一个配置点是localRepository地址。这个地址能够配置到自己硬盘不论什么位置。

<localRepository>D:\work\work-tools\maven\apache-maven-3.0.3\.m2\repository</localRepository>

注:maven会自己检查文件夹是否存在,不存在会自己主动建立。

第二个配置点。主要是连接我们刚才搭建的私服。


<profile>

<id>dev</id>

<activation>

<activeByDefault>true</activeByDefault>

</activation>

<repositories>

<repository>

<id>internal-nexus-repo</id>

<name>your localartifactory</name>

<url>http://192.168.1.106:8080/nexus-2.8.0/content/groups/public/</url>

<releases>

<enabled>true</enabled>

<updatePolicy>always</updatePolicy>

<checksumPolicy>warn</checksumPolicy>

</releases>

<snapshots>

<enabled>true</enabled>

<updatePolicy>always</updatePolicy>

<checksumPolicy>warn</checksumPolicy>

</snapshots>

</repository>

<repository>

<id>maven-internet</id>

<name>Public Repositories</name>

<url>http://repo1.maven.org/maven2</url>

<snapshots>

<enabled>false</enabled>

</snapshots>

</repository>

</repositories>

<pluginRepositories>

<pluginRepository>

<id>nexus-plugin-repo</id>

<name>your localartifactory</name>

<url>http://192.168.1.106:8080/nexus-2.8.0/content/groups/public/</url>

<snapshots>

<enabled>true</enabled>

</snapshots>

</pluginRepository>

<pluginRepository>

<id>maven-internet</id>

<name>Maven Central</name>

<url>http://repo1.maven.org/maven2</url>

<snapshots>

<enabled>false</enabled>

</snapshots>

</pluginRepository>

</pluginRepositories>

</profile>

</profiles>

这里除了配置了自己的私服地址外,还配置了网络服务,这样做是一种补充。当然大家也能够仅仅连接网络服务或是仅仅配置自己的私服地址(必需开启远程索引下载。配制nexus时我们已经开启了Download Remote Indexes)。

保存文件后我们的maven就已经配置好了!

三:设置M2_REPO变量

安装配置好私服和MAVEN。我们仅仅是能够在dos下利用mvn的命令行建立maven的项目和编译项目,可是我们一般开发都会使用IDE工具,以下我们就以Eclipse为例,说明怎样配置使用IDE。

注:maven的经常使用命令请自行学习。这里我就不说明了。

1:没有在Eclipse里安装MAVEN插件情况

配置M2_REPO变量

点击eclipse的菜单window下preferences属性,例如以下图。

配制maven命令

点击工具栏选择红色框圈住的部分,选择External Tools Configurations



watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYW5keV9neA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center">

Program点击右键new,改动相关属性,eclipse:eclipse命令就建立好了。

2:Eclipse里已安装了MAVEN插件的情况

假设安装了插件,那么就配置一下插件即可。(maven插件的安装大家能够查考下面网络)

1)配置installations

点击add加入我们刚部署的maven3.2.1,点击apply。

2)设置User Setting,

浏览选择setting.xml文件,点击 update settings更新配置文件,点击apply。

3)设置好后查看一下M2_REPO变量是否被自己主动加入。

假设没有问题就能够配置maven的命令了,例如以下图

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYW5keV9neA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center">

这次选择红框框住的菜单下的Run Configurations

本图是maven的package命令,我们依据自己的须要能够选择profiles的配置,这里我选择了skip tests这里的意思是打包时不进行test代码验证。

至此利用maven来进行项目构建与管理的总体流程就说完了,这里面还有很多地方没有进行细说,

比如:

Eclipse里假设没有插件MAVEN的插件我们该怎样建立maven的项目?

Eclipse里有MAVEN的插件我们该怎样建立maven的项目?

怎样安装那些没有在公共网络上有的jar包?

等等一系列的问题,我想要学习一个东西大家必须有自我的积极主动性,留下一些问题让大家自己先学习思考一下,下一篇我会具体说明一下我刚才提到的几个问题。

因为写作水平有限。假设有哪些地方还没有说清楚欢迎大家留言交流!





版权声明:本文博客原创文章,博客,未经同意,不得转载。

时间: 2024-10-22 11:50:06

java战斗系列-战斗MAVENPW结构的相关文章

Java入门系列-08-选择结构

这篇文章为你搞懂2个问题 if-else选择结构的使用? switch 的使用? 前面我们学习的代码都是直上直下的执行,还不会"拐弯",这篇文章带大家来看一下会"拐弯"的代码--选择结构,顾名思义就有选择性的执行代码. if-else 选择结构 简单if结构 只有一种执行情况,表达式结果为true时执行结构内代码片段,为false时不执行 语法: if(表达式){ 代码片段 } 敲一敲: import java.util.Scanner; public class

oracle学习入门系列之五 内存结构、数据库结构、进程

oracle学习入门系列之五 内存结构.数据库结构.进程 上篇蛤蟆简单描述了oracle公司的数据库产品.其他产品及oracle软件的一些特点.干货虽有但是真心是比较少的,这篇开始就是以干货为主,其中夹杂一些扯淡的事情了.蛤蟆一直也在想如何能生动的通过这干巴巴的文字来描述着世界级的软件,太理论大家都看不下去,太实践又缺乏深度.想想自己上大学那会,老师的讲课,无不枯燥乏味啊,满满的兴趣尽是消耗殆尽.所以不能仿效之,我们得走自己特色的路.以最易懂的形式.比喻等手段描述深奥的计算机知识.走起~ 开篇问

Java虚拟机(一)结构原理与运行时数据区域

前言 本来计划要写Android内存优化的,觉得有必要在此之前介绍一下Java虚拟机的相关知识,Java虚拟机也并不是三言两语能够介绍完的,因此开了Java虚拟机系列,这一篇文章我们来学习Java虚拟机的结构原理与运行时数据区域. 1.Java虚拟机概述 Oracle官方定义的Java技术体系主要包括以下几个部分: Java程序设计语言 各种平台的Java虚拟机 Class文件格式 Java API类库 第三方Java类库 可以把Java程序设计语言.Java虚拟机和Java API类库这三部分

【Java重构系列】重构31式之搬移方法

重构第二式:搬移方法 (Refactoring 2: Move Method) 毋容置疑,搬移方法(Move Method)应该是最常用的重构手段之一,正因为太常用而且较为简单,以至于很多人并不认为它是一种很有价值的重构,但事实并非如此,在最初的代码诞生之后,有些方法可能会被放在一些不合适的地方,例如,一个方法被其他类使用比在它所在的类中的使用还要频繁或者一个方法本身就不应该放在某个类中时,我们应该考虑将它移到更合适的地方.搬移方法,顾名思义就是将方法搬移至合适的位置,如将方法搬移到更频繁地使用

推介一个学习JAVA的系列教程-狗鱼IT教程

介绍一个学JAVA的零基础学习JAVA的网站,推介一个学习JAVA的系列教程-狗鱼IT教程 下面是java的系教程: 1?[java教程]Java 教程 2?[java教程]Java 简介 3?[java教程]Java 开发环境配置 4?[java教程]Java 基础语法 5?[java教程]Java 对象和类 6?[java教程]Java 基本数据类型 7?[java教程]Java 变量类型 8?[java教程]Java 修饰符 9?[java教程]Java 运算符 10?[java教程]Ja

Java并发系列[1]----AbstractQueuedSynchronizer源码分析之概要分析

学习Java并发编程不得不去了解一下java.util.concurrent这个包,这个包下面有许多我们经常用到的并发工具类,例如:ReentrantLock, CountDownLatch, CyclicBarrier, Semaphore等.而这些类的底层实现都依赖于AbstractQueuedSynchronizer这个类,由此可见这个类的重要性.所以在Java并发系列文章中我首先对AbstractQueuedSynchronizer这个类进行分析,由于这个类比较重要,而且代码比较长,为了

Java并发系列[5]----ReentrantLock源码分析

在Java5.0之前,协调对共享对象的访问可以使用的机制只有synchronized和volatile.我们知道synchronized关键字实现了内置锁,而volatile关键字保证了多线程的内存可见性.在大多数情况下,这些机制都能很好地完成工作,但却无法实现一些更高级的功能,例如,无法中断一个正在等待获取锁的线程,无法实现限定时间的获取锁机制,无法实现非阻塞结构的加锁规则等.而这些更灵活的加锁机制通常都能够提供更好的活跃性或性能.因此,在Java5.0中增加了一种新的机制:Reentrant

Java 设计模式系列(六)适配器模式

Java 设计模式系列(六)适配器模式 适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作. 适配器模式的结构: 类的适配器模式 对象的适配器模式 一.类适配器模式 类的适配器模式把适配的类的 API 转换成为目标类的 API. 在上图中可以看出,Adaptee 类并没有 sampleOperation2() 方法,而客户端则期待这个方法.为使客户端能够使用 Adaptee 类,提供一个中间环节,即类 Adapter,把 Adap

Java 设计模式系列(九)组合模式

Java 设计模式系列(九)组合模式 将对象组合成树形结构以表示"部分-整体"的层次结构.组合模式使得用户对单个对象的使用具有一致性. 一.组合模式结构 Component: 抽象的组件对象,为组合中的对象声明接口,让客户端可以通过这个接口来访问和管理整个对象结构,可以在里面为定义的功能提供缺省的实现. Leaf: 叶子节点对象,定义和实现叶子对象的行为,不再包含其它的子节点对象. Composite: 组合对象,通常会存储子组件,定义包含子组件的那些组件的行为,并实现在组件接口中定义