maven仓库总结,maven私服搭建,批量mvn eclipse:eclipse
配置pom.xml依赖包时在这里找包的描述:
http://search.maven.org/#browse
以java为根目录。
mvn archtype:generate -DgroupId=zttc.itat.maven -DartifactId=maven-ch03 -Dversion=1.0.0
配置maven/bin/.conf, 更改m2文件路径, 改为maven/repos
preferences->maven-installation,替换默认mvn
替换默认usersettings.xml
new maven project-->quickstart, 另一外常用的是webapp.
添加dependency:
www.mvnrepository.com
preference->editor->content assistant->auto activation: auto activation for java: .@
preference->editor->content assistant->auto activation: auto activation for java: #
右键工程->run as->build->clean install
几个不错的java类、jar包及其依赖查找网站:
http://search.maven.org/
http://mvnrepository.com/
http://mvnbrowser.com/
http://www.sonatype.org/
http://www.findjar.com/index.x
http://www.jarvana.com/jarvana/ (强烈推荐,界面不错,而且信息非常详细,是目前发现的最好的!!!可是我怎么打不开呢……)
国内仓库:http://maven.oschina.net/help.html
http://maven.oschina.net/content/groups/public/
http://maven.oschina.net/home.html
http://www.findmaven.net/
maven坐标和依赖,包含任何一个信赖、插件和构建,如log4j.jar, maven-compiler-plugin,account-email.jar.
先查找本地仓库再查找远程仓库,
局域网创建私服,节省时间
除了中央仓库,私服,还有其它公开仓库:http://download.java.net/maven/2/, http:/repository.jboss.com/maven2
仓库路径配置文件:~/.m2/setting.xml,此文件默认不存在需要从$M2_HOME/conf/setting.xml复制过来。
install把构建出来的jar包复制到本地仓库目录。
中央仓库:
<repositories>
<repository>
<id>central</id>
<name>Maven Repository Switchboard</name>
<layout>default</layout>
<url>http://repo1.maven.org/maven2</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
中央仓库可能无法满足需求,需要配置另外一远程仓库
<repositories>
<repository>
<id>jboss</id>
<name>JBoss Repository</name>
<url>http://repository.jboss.com/maven2/</url>
<releases>
<updatePolicy>daily</updatePolicy><!-- never,always,interval n -->
<enabled>true</enabled>
<checksumPolicy>warn</checksumPolicy><!-- fail,ignore -->
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
<layout>default</layout>
</repository>
</repositories>
列举几个常用的maven repository,分享一下,也防止长时间不用忘了:
<repositories>
<repository>
<id>jboss-cache</id>
<name>jboss-cache</name>
<url>http://repository.jboss.org/maven2</url>
</repository>
<repository>
<id>mvnsearch</id>
<name>mvnsearch Maven Repository</name>
<url>http://www.mvnsearch.org/maven2</url>
</repository>
<repository>
<id>ibiblio</id>
<name>ibiblio Maven Repository</name>
<url>http://www.ibiblio.org/maven2</url>
</repository>
<repository>
<id>mirrors.ibiblio</id>
<name>mirrors.ibiblio Maven Repository</name>
<url>http://mirrors.ibiblio.org/pub/mirrors/maven2</url>
</repository>
<repository>
<id>repo.springsource.org</id>
<name>repo.springsource.org-releases</name>
<url>http://repo.springsource.org/libs-milestone-local</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
在记两个搜索jar包的maven依赖的常用地址:
http://search.maven.org/
http://mvnrepository.com/
私服主要作用是部署第三方构件,包含企业内部生成的构件以及无法从外部仓库直接获取的构件。
maven对项目编译,测试,打包,还可以将生成构建部署到仓库中。
distributionManagement有发布和快照两个版本,分别有id,name,url三项,对应远程唯一仓库:
<distributionManagement>
<snapshotRepository>
<id>ossrh</id>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
</snapshotRepository>
</distributionManagement>
mvn clean deploy在配置完成后构建输出部署到远程仓库。
SNAPSHOT版本带有时间戳,maven每天检查一次时间戳来更新,强制更新用mvn clean install-U。
镜像结合私服:
<mirrors>
<mirror>
<id>internal-repository</id>
<name>Internal Repository Manager</name>
<url>http://192.168.1.1/maven2/</url>
<mirrofOf>*</mirrorOf>
</mirror>
</mirrors>
仓库搜索服务:
sonatype nexus是最流行仓库管理软件:https://repository.sonatype.org/,支持关键字、类名搜索,坐标搜索,检验和搜索功能。。、
jarvana.com/ 支持关键字、类名搜索、构件下载,依赖声明片段
http://mvnbrowser.com/
http://mvnrepository.com/
国内连接maven官方的仓库更新依赖库,网速一般很慢,收集一些国内快速的maven仓库镜像以备用。
====================国内OSChina提供的镜像,非常不错===================
<mirror>
<id>CN</id>
<name>OSChina Central</name>
<url>http://maven.oschina.net/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
========================================================
==================其他maven仓库镜像==========================
<mirror>
<id>repo2</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://repo2.maven.org/maven2/</url>
</mirror>
<mirror>
<id>net-cn</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://maven.net.cn/content/groups/public/</url>
</mirror>
<mirror>
<id>ui</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://uk.maven.org/maven2/</url>
</mirror>
<mirror>
<id>ibiblio</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://mirrors.ibiblio.org/pub/mirrors/maven2/</url>
</mirror>
<mirror>
<id>jboss-public-repository-group</id>
<mirrorOf>central</mirrorOf>
<name>JBoss Public Repository Group</name>
<url>http://repository.jboss.org/nexus/content/groups/public</url>
</mirror>
其它:
出现莫名问题,删除~/.m2/目录下对应子目录。
不同操作系统.m2目录内容一样,此文件夹可相互拷贝.
在主目录下,批量clean各代码包:dir=`pwd`; for i in `find $dir -name "pom.xml"`;do pom_path=${i%pom*};cd $pom_path; echo "current path is::::::::::::::::::::::::::::::::::::"$pom_path;mvn eclipse:eclipse;cd $dir;done
批量文件汇总: dir=`pwd`; for i in `find $dir -type d`;do cd $i; l=`echo $i|awk -F "/" '{print $5}'`;echo $i;cat *.csv|sort|uniq > $dir/g_${l}_all.csv;cd $dir;done
四、Maven仓库
Maven通过项目定义的坐标来管理这些依赖,而这些依赖的物理文件是通过Maven的仓库来统一管理的。
对于一个依赖坐标,它会按照如下方式反映到Maven的仓库中。
1、将groupId转化为路径:将groupId中的包名分隔符(.)转换成路径分隔符(/)。对于上面的例子就是 org.apache.struts -> org/apache/struts/
2、将artifactId转化为路径:在groupId转化的路径基础上连接artifactId。生成路径为: org/apache/struts/struts2-core/
3、将verion转化为路径:在artifactId转化的路径基础上连接version。生成路径为: org/apache/struts/struts2-core/2.3.8/
4、根据artifactId和version生成依赖包文件名:上例就是 struts2-core-2.3.8
5、根据依赖的打包方式确定文件的扩展名。对于上例它的扩展名就是.jar
这样根据路径和文件名就找到了这个物理文件在仓库中的位置:org/apache/struts/struts2-core/2.3.8/struts2-core-2.3.8.jar
Maven的仓库分为本地仓库和远程仓库。
本地仓库:是Maven在我们本机设置的仓库目录,默认目录为当前用户目录下的.m2/repository.
远程仓库包括中央仓库、私服、其他公共仓库。
中央仓库是Maven提供的远程仓库,地址是:http://repo.maven.apache.org/maven2
私服是我们为了节省带宽和时间,提升效率,在局域网架设的私有Maven仓库。
Maven在根据依赖坐标查找依赖时,首先会从本地仓库查找该依赖包,当本地仓库中没有这个依赖包时,Maven会从中央仓库查找依赖,并下载到本地仓库。最后,在我们项目的classpath中引用本地仓库的依赖包路径。
五、聚合与继承
一个项目通常存在多个模块,每个模块都是作为一个独立的工程存在。通过Maven配置文件可以把多个模块聚合在一起进行编译发布,并且它的聚合非常简单只需要使用元素添加模块就可以完成聚合。我们参考struts2的pom.xml文件来看一下聚合的配置方式:
4.0.0
org.apache.struts
struts2-parent
2.3.8
org.apache.struts
struts2-apps
pom
Webapps
blank
mailreader
portlet
showcase
rest-showcase
另外,在这个项目的个各模块间通常是存在引用关系,并且每个模块会引用一些相同的依赖,Maven也提供了继承的机制来管理这些共同的依赖。你可以编写一 个pom.xml文件作为父级pom配置,各个模块在自己的pom.xml中继承父级pom文件,就像上面的示例那样,使用元素标识继承的父级pom文 件。
父级pom文件的编写:
1、父级pom文件的packaging必须是pom,它需要作为pom文件发布以便子pom继承
2、在父级pom可以使用配置依赖管理。在下的依赖声明不会引入实际依赖,但是可以让子模块继承依赖配置。例如,在子模块中我们只标识依赖的groupId和artifactId,它就可以根据父类的依赖管理获取这个依赖的version及exclussions等配置。
3、在父级pom中可以使用配置插件管理。作用和类似,只不过一个管理依赖一个管理插件。
子模块pom文件的编写:
1、需要使用元素标识继承的父pom
2、可以使用标识父级pom的物理路径,子模块会直接从指定的路径加载父级pom文件,未指定该元素时,子模块将根据父级pom的坐标从Maven仓库查找
3、子模块pom可以继承父级pom中除artifactId之外的大部分配置,因此子模块的groupId、version以及依赖的version都可以省略。
使用 OSC Maven 仓库: maven.oschina.net
1 安装
1.1 下载 Maven
下载 Maven 程序包,下载地址:http://maven.apache.org/download.cgi
1.2 安装 Maven
解压已下载的 Maven 程序包,到本地磁盘(如:D:\SDK\Maven)。
1.3 配置环境变量
设置以下环境变量:
M2_HOME = D:\SDK\Maven
PATH = ...;%M2_HOME%\bin
1.4 测试安装
可使用 mvn -version 命令查看已安装的 Maven 版本号。
2 基础配置
修改 Maven 配置文件(setting.xml),可修改全局配置或用户配置:
全局配置:%M2_HOME%\conf\settings.xml
用户配置:用户目录\.m2\settings.xml
2.1 配置 OSC Maven 镜像
<mirrors>
...
<mirror>
<id>osc</id>
<mirrorOf>*</mirrorOf>
<url>http://maven.oschina.net/content/groups/public/</url>
</mirror>
...
</mirrors>
2.2 配置 OSC Maven 仓库
<profiles>
...
<profile>
<id>osc</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<repositories>
<repository>
<id>osc</id>
<url>http://maven.oschina.net/content/groups/public/</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>osc</id>
<url>http://maven.oschina.net/content/groups/public/</url>
</pluginRepository>
</pluginRepositories>
</profile>
...
</profiles>
3 高级配置
注意:以下高级配置可根据实际情况有选择性地使用。
3.1 配置本地仓库路径
若需要指定 Maven 本地仓库的路径时,可进行如下配置:
<localRepository>D:/Repository/Maven</localRepository>
需要根据实际情况进行配置。
3.2 配置 HTTP 代理
对于有些公司而言,需要配置 HTTP 代理才能上外网,可进行如下配置:
<proxies>
...
<proxy>
<active>true</active>
<protocol>http</protocol>
<host>xxx.xxx.xxx.xxx</host>
<port>xxxx</port>
</proxy>
...
</proxies>
需要根据实际情况进行配置。
3.3 配置 Maven 用户
若需要使用 mvn deploy 命令,将自己的 jar 包上传到 OSC Maven 仓库时,可进行如下配置:
<servers>
...
<server>
<id>osc</id>
<username>xxx</username>
<password>xxx</password>
</server>
...
</servers>
提示:需要联系 OSC Maven 仓库管理员(廖凯)获取用户名与密码。
此外,需要在 pom.xml 中添加以下配置:
...
<distributionManagement>
<repository>
<id>osc</id>
<url>http://maven.oschina.net/content/repositories/thirdparty/</url>
</repository>
<snapshotRepository>
<id>osc</id>
<url>http://maven.oschina.net/content/repositories/osc_snapshots/</url>
</snapshotRepository>
</distributionManagement>
...
4. 理解 pom.xml
当您打开自动生成的 pom.xml,或许会感觉到可读性不太好,有必要做一下格式化,经过整理后是这样的:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
< 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/maven-v4_0_0.xsd"> < modelVersion >4.0.0</ modelVersion > < groupId >com.smart</ groupId > < artifactId >smart-demo</ artifactId > < version >1.0</ version > < packaging >war</ packaging > < name >smart-demo Maven Webapp</ name > < url >http://maven.apache.org</ url > < dependencies > < dependency > < groupId >junit</ groupId > < artifactId >junit</ artifactId > < version >3.8.1</ version > < scope >test</ scope > </ dependency > </ dependencies > < build > < finalName >smart-demo</ finalName > </ build > </ project > |
从上往下简要说明一下:
modelVersion:这个是 POM 的版本号,现在都是 4.0.0 的,必须得有,但不需要修改。
groupId、artifactId、version:分别表示 Maven 项目的组织名、构件名、版本号,它们三个合起来就是 Maven 坐标,根据这个坐标可以在 Maven 仓库中对应唯一的 Maven 构件。
packaging:表示该项目的打包方式,war 表示打包为 war 文件,默认为 jar,表示打包为 jar 文件。
name、url:表示该项目的名称与 URL 地址,意义不大,可以省略。
dependencies:定义该项目的依赖关系,其中每一个 dependency 对应一个 Maven 项目,可见 Maven 坐标再次出现,还多了一个 scope,表示作用域(下面会描述)。
build:表示与构建相关的配置,这里的 finalName 表示最终构建后的名称 smart-demo.war,这里的 finalName 还可以使用另一种方式来定义(下面会描述)。
如果用树形图来表达 pom.xml,那么会更加清晰:
可见,除了项目的基本信息(Maven 坐标、打包方式等)以外,每个 pom.xml 都应该包括:
Lifecycle(生命周期)
Plugins(插件)
Dependencies(依赖)
Lifecycle 是项目构建的生命周期,它包括 9 个 Phase(阶段)。
大家知道,Maven 是一个核心加上多个插件的架构,而这些插件提供了一系列非常重要的功能,这些插件会在许多阶段里发挥重要作用。
阶段 | 插件 | 作用 |
clean | clean | 清理自动生成的文件,也就是 target 目录 |
validate | 由 Maven 核心负责 | 验证 Maven 描述文件是否有效 |
compile | compiler、resources | 编译 Java 源码 |
test | compiler、surefire、resources | 运行测试代码 |
package | war | 项目打包,就是生成构件包,也就是打 war 包 |
verify | 由 Maven 核心负责 | 验证构件包是否有效 |
install | install | 将构件包安装到本地仓库 |
site | site | 生成项目站点,就是一堆静态网页文件,包括 JavaDoc |
deploy | deploy | 将构件包部署到远程仓库 |
以上表格中所出现的插件名称实际上是插件的别名(或称为前缀),比如:compiler 实际上是 org.apache.maven.plugins:maven-compiler-plugin:2.3.2,这个才是 Maven 插件的完全名称。
每个插件又包括了一些列的 Goal(目标),以 compiler 插件为例,它包括以下目标:
compiler:help:用于显示 compiler 插件的使用帮助。
compiler:compile:用于编译 main 目录下的 Java 代码。
compiler:testCompile:用于编译 test 目录下的 Java 代码。
可见,插件目标才是具体干活的人,一个插件包括了一个多个目标,一个阶段可由零个或多个插件来提供支持。
我们可以在 pom.xml 中定义一些列的项目依赖(构件包),每个构件包都会有一个 Scope(作用域),它表示该构件包在什么时候起作用,包括以下五种:
compile:默认作用域,在编译、测试、运行时有效
test:对于测试时有效
runtime:对于测试、运行时有效
provided:对于编译、测试时有效,但在运行时无效
system:与 provided 类似,但依赖于系统资源
可用一张矩阵表格来表示:
作用域 | 编译时有效 | 测试时有效 | 运行时有效 | 示例 |
compile | √ | √ | √ | smart-framework.jar |
test | √ | junit.jar | ||
runtime | √ | √ | mysql-connector-java.jar | |
provided | √ | √ | servlet-api.jar | |
system | √ | √ | JDK 的 rt.jar |
pom.xml 大致解释一下:
我们可使用 properties 来定义一些配置属性,例如:project.build.sourceEncoding(项目构建源码编码方式),可设置为 UTF-8,可防止中文乱码。也可定义相关构件包版本号,例如:smart.version,便于日后统一升级。
建议使用最新版本的 JUnit,通过 Archetype 自动生成的 JUnit 太老了(3.8.1),可改为最新版(4.11)。
因为没必要使用 MySQL 客户端的 API,它仅仅在运行时有效,所以我们将 MySQL 构件包的作用域设置为 runtime。
因为我们只想在代码中使用 Servlet API,而不想将它所对应的 jar 包放入 WEB-INF 的 lib 目录下,所以我们可设置 Servlet 构件包的作用域为 provided。
为了保证在 JDK 1.6 运行,我们可配置 maven-compiler-plugin 插件,设置输入源码为 1.6,编译输出的字节码也为 1.6。
如果想跳过测试,可配置 maven-surefire-plugin 插件,将 skipTests 设置为 true。
如果想配置生成的 war 包为 artifactId,可修改 maven-war-plugin 插件,将 warName 修改为 ${project.artifactId},这样就无需再配置 finalName 了。
如果想通过 Maven 将应用部署到 Tomcat 中,可使用 tomcat7-maven-plugin 插件,可使用 mvn tomcat7:run-war 命令来运行 war 包。
5. 使用 Maven 命令
前面我们已经使用了几个 Maven 命令,例如:mvn archetype:generate,mvn tomcat7:run-war 等。其实,可使用两种不同的方式来执行 Maven 命令:
方式一:mvn <插件>:<目标> [参数]
- mvn source:jar 生成源码包
- mvn javadoc:jar 生成帮助文档
方式二:mvn <阶段>
现在我们接触到的都是第一种方式,而第二种方式才是我们日常中使用最频繁的,例如:
mvn clean:清空输出目录(即 target 目录),清理上一次构建生成的文件
mvn compile:编译为class文件,编译项目的主源码,一般来说,是对src/main/resources目录的内容进行变量替换等工作后,复制到项目输出的主classpath目录中,不生成jar包。
mvn package:生成构件包(一般为 jar 包或 war 包),接受编译好的代码,打包成可发布的格式,如JAR。
mvn install:将构件包安装到本地仓库,供本地其他Maven项目使用。
mvn deploy:将构件包部署到远程仓库,供其他开发人员和Maven项目使用。
validate: 验证项目是否正确,所有必须的信息是否可用。
test: 使用单元测试框架对编译后的源码进行测试 , 测试代码不会被打包或部署。
integration-test: process and deploy the package if necessary into an environment where integration tests can be run
verify: run any checks to verify the package is valid and meets quality criteria
site: 生成项目站点文档,清理项目(clean the project),拷贝依赖(copy dependencies)和打包项目(package the project,即执行所有阶段来打包, 注意的是,阶段(phase)和目标(goal)可以顺序执行。此阶段根据项目的POM文件生成了一个site。你可以发现在target/site目录下生成了文档。
- mvn clean dependency:copy-dependencies package:阶段实际上被映射到底层的目标。每个阶段执行的具体目标依赖于项目的包装类型。例如,如果项目类型是一个JAR的话,package 执行 jar:jar ,而如果项目类型是 WAR 的话,执行的是 war:war。
项目对象模型(Project Object Model),通常称为POM文件。
POM
pom.xml文件是一个Maven项目的核心配置文件。它是包含了大部分你期望如何build一个项目所需信息的一个配置文件。POM比较庞大而且比较复杂,但是即使没有完全理解,我们也能够有效地使用它。该项目的POM如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
< 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/maven-v4_0_0.xsd" > < modelVersion >4.0.0</ modelVersion > < groupId >com.oschina.test</ groupId > < artifactId >my-maven-test</ artifactId > < packaging >jar</ packaging > < version >1.0-SNAPSHOT</ version > < name >my-maven-test</ name > < url >http://maven.apache.org</ url > < dependencies > < dependency > < groupId >junit</ groupId > < artifactId >junit</ artifactId > < version >3.8.1</ version > < scope >test</ scope > </ dependency > </ dependencies > </ project > |
What did I just do?
你执行了Maven的目标(goal) archetype:generate,并添加了一系列的参数。前缀archetype是包含了目标的插件。如果你熟悉Ant ,你可以设想这类似于Ant中的任务(task)。这个目标创建了一个基于原型(archetype)的简单项目。我只想说,一个插件是一系列拥有共同目的(general common purpose)的目标的集合。例如,jboss-maven-plugin插件,其目的是“处理各种JBoss项目(deal with various jboss items)” 。
Build the Project
1
|
mvn package |
命令行中将打印编译时的各种信息,输出了“BUILD SUCCESS”时表示项目编译成功了。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
[WARNING] [WARNING] Some problems were encountered while building the effective settings [WARNING] Unrecognised tag: 'activeProfile' (position: START_TAG seen ...< /activeProfiles >\n -->\n <activeProfile>... @278:18) @ /usr/local/apache-maven-3 .1.1 /conf/settings .xml, line 278, column 18 [WARNING] Unrecognised tag: 'activeProfile' (position: START_TAG seen ...< /activeProfiles >\n -->\n <activeProfile>... @278:18) @ /Users/flanliulf/ .m2 /settings .xml, line 278, column 18 [WARNING] [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building my-maven- test 1.0-SNAPSHOT [INFO] ------------------------------------------------------------------------ Downloading: http: //repo .maven.apache.org /maven2/org/apache/maven/plugins/maven-resources-plugin/2 .6 /maven-resources-plugin-2 .6.pom Downloaded: http: //repo .maven.apache.org /maven2/org/apache/maven/plugins/maven-resources-plugin/2 .6 /maven-resources-plugin-2 .6.pom (8 KB at 1.0 KB /sec ) 。。。(省略) Downloaded: http: //repo .maven.apache.org /maven2/org/apache/maven/surefire/surefire-junit3/2 .12.4 /surefire-junit3-2 .12.4.jar (26 KB at 13.9 KB /sec ) ------------------------------------------------------- T E S T S ------------------------------------------------------- Running com.oschina. test .AppTest Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.005 sec Results : Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 [INFO] [INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ my-maven- test --- Downloading: http: //repo .maven.apache.org /maven2/org/apache/maven/maven-archiver/2 .5 /maven-archiver-2 .5.pom Downloaded: http: //repo .maven.apache.org /maven2/org/apache/maven/maven-archiver/2 .5 /maven-archiver-2 .5.pom (5 KB at 3.5 KB /sec ) 。。。(省略) Downloaded: http: //repo .maven.apache.org /maven2/org/codehaus/plexus/plexus-archiver/2 .1 /plexus-archiver-2 .1.jar (181 KB at 32.7 KB /sec ) [INFO] Building jar: /Users/flanliulf/maven-proj/my-maven-test/target/my-maven-test-1 .0-SNAPSHOT.jar [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time : 1:42.914s [INFO] Finished at: Thu Jan 23 15:41:20 CST 2014 [INFO] Final Memory: 11M /81M [INFO] ------------------------------------------------------------------------ |
不同于执行的第一个命令(archetype:generate),你可能会注意到第二个是简单的一个字 - package。这不是一个目标(goal),这是一个阶段(phase)。 一个阶段是一个构建的生命周期(build lifecycle)中的一步,一个构建的生命周期,可以看做是一系列阶段的有序集合。当指定了一个阶段时, Maven将顺序执行每个阶段。例如,如果我们执行编译(compile)阶段,实际被执行的各个阶段如下:
1
2
3
4
5
6
|
1.validate 2.generate-sources 3.process-sources 4.generate-resources 5.process-resources 6.compile |
你可以使用下面的命令来测试刚刚编辑和打包的jar:
1
|
java - cp target /my-maven-test-1 .0-SNAPSHOT.jar com.oschina. test .App |
将会得到如下输出:
1
|
Hello World! |
maven私服搭建:
http://blog.csdn.net/shenshen123jun/article/details/9084293
http://blog.csdn.net/dhmpgt/article/details/9998321
http://www.sonatype.org/nexus/
maven仓库总结,maven私服搭建,批量mvn eclipse:eclipse的更多相关文章
- Maven仓库介绍以及私服搭建
1 什么是Maven? 1.1 Maven的概念 Maven主要服务于基于Java平台的项目构建.依赖管理和项目信息开发,它是一个异常强大的构建工具,能够帮助我们自动化构建过程,从清理.编译.测试 ...
- Java-Maven(三):Maven坐标、Maven仓库、Maven生命周期
之前通过学习对maven命令有了部分了解,但是只是知道maven是用来做什么.但到目前位置还不足以全面的了解maven,为更全面的了解maven,需要学习以下几个概念:Maven坐标.Maven仓库. ...
- 国内阿里maven仓库镜像maven配置文件maven仓库速度快
国内连接maven官方的仓库更新依赖库,网速一般很慢,收集一些国内快速的maven仓库镜像以备用. 最新更新:2016年11月11日 18:05:40 阿里云提供Maven私服,我把配置文件贴一下,自 ...
- [转]国内阿里Maven仓库镜像Maven配置文件Maven仓库速度快
原文地址:http://www.cnblogs.com/ae6623/p/4416256.html 国内连接maven官方的仓库更新依赖库,网速一般很慢,收集一些国内快速的maven仓库镜像以备用. ...
- ava Maven项目之Nexus私服搭建和版本管理应用
目录: Nexus介绍 环境.软件准备 Nexus服务搭建 Java Maven项目版本管理应用 FAQ 1.Nexus介绍 Nexus是一个强大的Maven仓库管理器,它极大地简化了自己内部仓库的维 ...
- Java Maven项目之Nexus私服搭建和版本管理应用
转载自:https://cloud.tencent.com/developer/article/1010603 1.Nexus介绍 Nexus是一个强大的Maven仓库管理器,它极大地简化了自己内部仓 ...
- Maven Nexus3 安装,私服搭建
为啥搭建Maven私服? 如果没有私服,我们所需的所有构件都需要通过maven的中央仓库和第三方的Maven仓库下载到本地,而一个团队中的所有人都重复的从maven仓库下载构件无疑加大了仓库的负载和浪 ...
- 如何将本地jar包放入本地maven仓库和远程私服仓库
1.将本地jar包放入本地仓库.只需执行如下命令即可: mvn install:install-file -Dfile=D:/demo/fiber.jar -DgroupId=com.sure -Da ...
- maven仓库镜像、私服与jdk版本配置
--配置全局镜像,setting.xml <mirrors> <mirror> <id>alimaven</id> <name>aliyun ...
- 收集的maven 仓库地址(maven repository)
maven 仓库地址: 共有的仓库http://repo1.maven.org/maven2/http://repository.jboss.com/maven2/http://repository. ...
随机推荐
- 【JZOJ4929】【NOIP2017提高组模拟12.18】B
题目描述 在两个n*m的网格上染色,每个网格中被染色的格子必须是一个四联通块(没有任何格子被染色也可以),四联通块是指所有染了色的格子可以通过网格的边联通,现在给出哪些格子在两个网格上都被染色了,保证 ...
- 【JZOJ4919】【NOIP2017提高组模拟12.10】神炎皇
题目描述 神炎皇乌利亚很喜欢数对,他想找到神奇的数对. 对于一个整数对(a,b),若满足a+b<=n且a+b是ab的因子,则成为神奇的数对.请问这样的数对共有多少呢? 数据范围 对于100%的数 ...
- 【JZOJ4770】【NOIP2016提高A组模拟9.9】闭门造车
题目描述 自从htn体验了一把飙车的快感,他就下定决心要闭门造车!但是他两手空空怎么造得出车来呢?无奈的他只好来到了汽车零部件商店. 一走进商店,玲琅满目的各式零件看得htn眼花缭乱.但是他很快便反应 ...
- Directx11教程(44) alpha blend(1)
原文:Directx11教程(44) alpha blend(1) 我们知道,D3D11中按Frame来渲染物体,每个Frame中又可能包含若干个primitive,如下面的示意图所示: ...
- Directx教程(23) 简单的光照模型(2)
原文:Directx教程(23) 简单的光照模型(2) 在工程myTutorialD3D11_16中,我在文件light.vs中定义了一个材质光源属性常量缓冲. //const buffer最好 ...
- thinkphp5.0 验证提示信息的类型
以上是5.0.12版本 下面是5.0.5版本,没有elseif 上图中红方格的值只能是string类型,但是这种情况是在5.0.5版本是可以设置为array类型的
- Django1.11使用命令makemigrations提示No Changes
在项目中,遇到models模型变动,变动后合并发生问题,故当时做了删除应用文件夹下migrations文件,由于数据库里无较多新数据,故删除后重建,但重建后执行模型合并操作结果为No Changes, ...
- poj3532 Round Numbers
题意:给出l.r,求区间[l,r]内二进制中0的个数大于等于1的个数的数字有多少个. 简单的数位dp. //Serene #include<algorithm> #include< ...
- hdu2176 尼姆博弈
如果 a1^a2^a3........^an=0,必败态. 如果 a1^a2^a3........^an!=0,必胜态. 对于必胜态,若a1^a2^a3........^an=k,要让对方为必败态,所 ...
- jQuery 鼠标移入图片 显示大图并跟随鼠标移动
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...