JDK:jdk-8u111-linux-x64.rpm
Linux : Centos 7
Maven: apache-maven-3.5.2-bin.tar.gz
1.下载 linux maven 安装包
在根目录下创建目录
mkdir cloud
mkdir /cloud/maven
将下载好了的maven放到该目录下,
tar vxf apache-maven-3.5.2-bin.tar.gz
[root@localhost maven]# tar vxf apache-maven-3.5.2-bin.tar.gz
apache-maven-3.5.2/README.txt
apache-maven-3.5.2/LICENSE
apache-maven-3.5.2/NOTICE
apache-maven-3.5.2/lib/
apache-maven-3.5.2/lib/cdi-api.license
apache-maven-3.5.2/lib/commons-cli.license
apache-maven-3.5.2/lib/commons-io.license
apache-maven-3.5.2/lib/commons-lang3.license
apache-maven-3.5.2/lib/jcl-over-slf4j.license
apache-maven-3.5.2/lib/jsr250-api.license
apache-maven-3.5.2/lib/maven-artifact.license
apache-maven-3.5.2/lib/maven-builder-support.license
apache-maven-3.5.2/lib/maven-compat.license
apache-maven-3.5.2/lib/maven-core.license
apache-maven-3.5.2/lib/maven-embedder.license
apache-maven-3.5.2/lib/maven-model-builder.license
apache-maven-3.5.2/lib/maven-model.license
apache-maven-3.5.2/lib/maven-plugin-api.license
apache-maven-3.5.2/lib/maven-repository-metadata.license
apache-maven-3.5.2/lib/maven-resolver-api.license
apache-maven-3.5.2/lib/maven-resolver-connector-basic.license
apache-maven-3.5.2/lib/maven-resolver-impl.license
apache-maven-3.5.2/lib/maven-resolver-provider.license
apache-maven-3.5.2/lib/maven-resolver-spi.license
apache-maven-3.5.2/lib/maven-resolver-transport-wagon.license
apache-maven-3.5.2/lib/maven-resolver-util.license
apache-maven-3.5.2/lib/maven-settings-builder.license
apache-maven-3.5.2/lib/maven-settings.license
apache-maven-3.5.2/lib/maven-shared-utils.license
apache-maven-3.5.2/lib/maven-slf4j-provider.license
apache-maven-3.5.2/lib/org.eclipse.sisu.inject.license
apache-maven-3.5.2/lib/org.eclipse.sisu.plexus.license
apache-maven-3.5.2/lib/plexus-cipher.license
apache-maven-3.5.2/lib/plexus-component-annotations.license
apache-maven-3.5.2/lib/plexus-interpolation.license
apache-maven-3.5.2/lib/plexus-sec-dispatcher.license
apache-maven-3.5.2/lib/plexus-utils.license
apache-maven-3.5.2/lib/slf4j-api.license
apache-maven-3.5.2/lib/wagon-file.license
apache-maven-3.5.2/lib/wagon-http.license
apache-maven-3.5.2/lib/wagon-provider-api.license
apache-maven-3.5.2/lib/jansi-native/
apache-maven-3.5.2/lib/jansi-native/freebsd32/
apache-maven-3.5.2/lib/jansi-native/freebsd64/
apache-maven-3.5.2/lib/jansi-native/linux32/
apache-maven-3.5.2/lib/jansi-native/linux64/
apache-maven-3.5.2/lib/jansi-native/osx/
apache-maven-3.5.2/lib/jansi-native/windows32/
apache-maven-3.5.2/lib/jansi-native/windows64/
apache-maven-3.5.2/lib/jansi-native/freebsd32/libjansi.so
apache-maven-3.5.2/lib/jansi-native/freebsd64/libjansi.so
apache-maven-3.5.2/lib/jansi-native/linux32/libjansi.so
apache-maven-3.5.2/lib/jansi-native/linux64/libjansi.so
apache-maven-3.5.2/lib/jansi-native/osx/libjansi.jnilib
apache-maven-3.5.2/lib/jansi-native/windows32/jansi.dll
apache-maven-3.5.2/lib/jansi-native/windows64/jansi.dll
apache-maven-3.5.2/bin/m2.conf
apache-maven-3.5.2/bin/mvn.cmd
apache-maven-3.5.2/bin/mvnDebug.cmd
apache-maven-3.5.2/bin/mvn
apache-maven-3.5.2/bin/mvnDebug
apache-maven-3.5.2/bin/mvnyjp
apache-maven-3.5.2/conf/
apache-maven-3.5.2/conf/logging/
apache-maven-3.5.2/conf/logging/simplelogger.properties
apache-maven-3.5.2/conf/settings.xml
apache-maven-3.5.2/conf/toolchains.xml
apache-maven-3.5.2/lib/ext/
apache-maven-3.5.2/lib/jansi-native/
apache-maven-3.5.2/lib/ext/README.txt
apache-maven-3.5.2/lib/jansi-native/README.txt
apache-maven-3.5.2/boot/plexus-classworlds-2.5.2.jar
apache-maven-3.5.2/lib/maven-embedder-3.5.2.jar
apache-maven-3.5.2/lib/maven-settings-3.5.2.jar
apache-maven-3.5.2/lib/plexus-utils-3.1.0.jar
apache-maven-3.5.2/lib/maven-settings-builder-3.5.2.jar
apache-maven-3.5.2/lib/maven-builder-support-3.5.2.jar
apache-maven-3.5.2/lib/commons-lang3-3.5.jar
apache-maven-3.5.2/lib/plexus-interpolation-1.24.jar
apache-maven-3.5.2/lib/plexus-component-annotations-1.7.1.jar
apache-maven-3.5.2/lib/plexus-sec-dispatcher-1.4.jar
apache-maven-3.5.2/lib/plexus-cipher-1.7.jar
apache-maven-3.5.2/lib/maven-core-3.5.2.jar
apache-maven-3.5.2/lib/maven-model-3.5.2.jar
apache-maven-3.5.2/lib/maven-repository-metadata-3.5.2.jar
apache-maven-3.5.2/lib/maven-artifact-3.5.2.jar
apache-maven-3.5.2/lib/maven-plugin-api-3.5.2.jar
apache-maven-3.5.2/lib/org.eclipse.sisu.plexus-0.3.3.jar
apache-maven-3.5.2/lib/cdi-api-1.0.jar
apache-maven-3.5.2/lib/jsr250-api-1.0.jar
apache-maven-3.5.2/lib/javax.inject-1.jar
apache-maven-3.5.2/lib/org.eclipse.sisu.inject-0.3.3.jar
apache-maven-3.5.2/lib/maven-model-builder-3.5.2.jar
apache-maven-3.5.2/lib/guava-20.0.jar
apache-maven-3.5.2/lib/maven-resolver-provider-3.5.2.jar
apache-maven-3.5.2/lib/maven-resolver-api-1.1.0.jar
apache-maven-3.5.2/lib/maven-resolver-spi-1.1.0.jar
apache-maven-3.5.2/lib/maven-resolver-util-1.1.0.jar
apache-maven-3.5.2/lib/maven-resolver-impl-1.1.0.jar
apache-maven-3.5.2/lib/maven-shared-utils-3.1.0.jar
apache-maven-3.5.2/lib/commons-io-2.5.jar
apache-maven-3.5.2/lib/guice-4.0-no_aop.jar
apache-maven-3.5.2/lib/aopalliance-1.0.jar
apache-maven-3.5.2/lib/slf4j-api-1.7.25.jar
apache-maven-3.5.2/lib/commons-cli-1.4.jar
apache-maven-3.5.2/lib/maven-compat-3.5.2.jar
apache-maven-3.5.2/lib/wagon-provider-api-2.12.jar
apache-maven-3.5.2/lib/wagon-http-2.12-shaded.jar
apache-maven-3.5.2/lib/jcl-over-slf4j-1.7.25.jar
apache-maven-3.5.2/lib/wagon-file-2.12.jar
apache-maven-3.5.2/lib/maven-resolver-connector-basic-1.1.0.jar
apache-maven-3.5.2/lib/maven-resolver-transport-wagon-1.1.0.jar
apache-maven-3.5.2/lib/maven-slf4j-provider-3.5.2.jar
apache-maven-3.5.2/lib/jansi-1.16.jar
查看目录maven就以解压好了
[root@localhost maven]# ll
total 8536
drwxr-xr-x. 6 root root 92 Nov 3 20:25 apache-maven-3.5.2
-rw-r--r--. 1 root root 8738691 Nov 3 20:00 apache-maven-3.5.2-bin.tar.gz
将maven加到环境变量中,在vim /etc/profile 最后加上以下
# maven path
MAVEN_HOME=/cloud/maven/apache-maven-3.5.2
export MAVEN_HOME
export PATH=${PATH}:${MAVEN_HOME}/bin
source /etc/profile
查看一下maven 版本就以成功安装完成
[root@localhost project]# mvn -v
Apache Maven 3.5.2 (138edd61fd100ec658bfa2d307c43b76940a5d7d; 2017-10-18T00:58:13-07:00)
Maven home: /cloud/maven/apache-maven-3.5.2
Java version: 1.8.0_111, vendor: Oracle Corporation
Java home: /usr/java/jdk1.8.0_111/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-327.el7.x86_64", arch: "amd64", family: "unix"
下面配置maven 的仓库和阿里支库
在maven 目录下创建文件夹
mkdir repo
编辑maven 解压包下的/cloud/maven/apache-maven-3.5.2/conf/setting.xml
修改如下:
<localRepository>/cloud/maven/repo</localRepository>
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
使用Maven创建项目
无论是学习语言还是框架,先来一个Hello World基本上已经是套路了,我们也通过构建一个Hello World项目来了解如何使用Maven。
首先通过maven创建helloworld项目
$ mvn archetype:create -DgroupId=helloworld -DartifactId=helloworld
发现在失败了,查看失败信息发现
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 10.133 s
[INFO] Finished at: 2017-11-03T20:41:46-07:00
[INFO] Final Memory: 9M/21M
[INFO] ------------------------------------------------------------------------
[ERROR] Could not find goal 'create' in plugin org.apache.maven.plugins:maven-archetype-plugin:3.0.1 among available goals crawl, create-from-project, generate, help, integration-test, jar, update-local-catalog -> [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/MojoNotFoundException
原因:版本命令冲突,即在maven3.0.5以上版本舍弃了create,使用generate生成项目
解决办法:将create改为generate
[root@localhost project]# mvn archetype:generate -DgroupId=helloworld -DartifactId=helloworld
这样就创建项目完成,中间要选择项目类型,我这选10,创建web类型的
[INFO] Generating project in Interactive mode
[WARNING] No archetype found in remote catalog. Defaulting to internal catalog
[INFO] No archetype defined. Using maven-archetype-quickstart (org.apache.maven.archetypes:maven-archetype-quickstart:1.0)
Choose archetype:
1: internal -> org.apache.maven.archetypes:maven-archetype-archetype (An archetype which contains a sample archetype.)
2: internal -> org.apache.maven.archetypes:maven-archetype-j2ee-simple (An archetype which contains a simplifed sample J2EE application.)
3: internal -> org.apache.maven.archetypes:maven-archetype-plugin (An archetype which contains a sample Maven plugin.)
4: internal -> org.apache.maven.archetypes:maven-archetype-plugin-site (An archetype which contains a sample Maven plugin site.
This archetype can be layered upon an existing Maven plugin project.)
5: internal -> org.apache.maven.archetypes:maven-archetype-portlet (An archetype which contains a sample JSR-268 Portlet.)
6: internal -> org.apache.maven.archetypes:maven-archetype-profiles ()
7: internal -> org.apache.maven.archetypes:maven-archetype-quickstart (An archetype which contains a sample Maven project.)
8: internal -> org.apache.maven.archetypes:maven-archetype-site (An archetype which contains a sample Maven site which demonstrates
some of the supported document types like APT, XDoc, and FML and demonstrates how
to i18n your site. This archetype can be layered upon an existing Maven project.)
9: internal -> org.apache.maven.archetypes:maven-archetype-site-simple (An archetype which contains a sample Maven site.)
10: internal -> org.apache.maven.archetypes:maven-archetype-webapp (An archetype which contains a sample Maven Webapp project.)
Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 7: 10
Downloading from nexus-aliyun: http://maven.aliyun.com/nexus/content/groups/public/org/apache/maven/archetypes/maven-archetype-webapp/1.0/maven-archetype-webapp-1.0.pom
Downloaded from nexus-aliyun: http://maven.aliyun.com/nexus/content/groups/public/org/apache/maven/archetypes/maven-archetype-webapp/1.0/maven-archetype-webapp-1.0.pom (533 B at 379 B/s)
Downloading from nexus-aliyun: http://maven.aliyun.com/nexus/content/groups/public/org/apache/maven/archetypes/maven-archetype-bundles/2/maven-archetype-bundles-2.pom
Downloaded from nexus-aliyun: http://maven.aliyun.com/nexus/content/groups/public/org/apache/maven/archetypes/maven-archetype-bundles/2/maven-archetype-bundles-2.pom (1.5 kB at 7.7 kB/s)
Downloading from nexus-aliyun: http://maven.aliyun.com/nexus/content/groups/public/org/apache/maven/archetype/maven-archetype-parent/1/maven-archetype-parent-1.pom
Downloaded from nexus-aliyun: http://maven.aliyun.com/nexus/content/groups/public/org/apache/maven/archetype/maven-archetype-parent/1/maven-archetype-parent-1.pom (1.3 kB at 6.0 kB/s)
Downloading from nexus-aliyun: http://maven.aliyun.com/nexus/content/groups/public/org/apache/maven/maven-parent/4/maven-parent-4.pom
Downloaded from nexus-aliyun: http://maven.aliyun.com/nexus/content/groups/public/org/apache/maven/maven-parent/4/maven-parent-4.pom (10.0 kB at 50 kB/s)
Downloading from nexus-aliyun: http://maven.aliyun.com/nexus/content/groups/public/org/apache/apache/3/apache-3.pom
Downloaded from nexus-aliyun: http://maven.aliyun.com/nexus/content/groups/public/org/apache/apache/3/apache-3.pom (3.4 kB at 18 kB/s)
Downloading from nexus-aliyun: http://maven.aliyun.com/nexus/content/groups/public/org/apache/maven/archetypes/maven-archetype-webapp/1.0/maven-archetype-webapp-1.0.jar
Downloaded from nexus-aliyun: http://maven.aliyun.com/nexus/content/groups/public/org/apache/maven/archetypes/maven-archetype-webapp/1.0/maven-archetype-webapp-1.0.jar (3.9 kB at 17 kB/s)
[INFO] Using property: groupId = helloworld
[INFO] Using property: artifactId = helloworld
Define value for property 'version' 1.0-SNAPSHOT: : 1.0
[INFO] Using property: package = helloworld
Confirm properties configuration:
groupId: helloworld
artifactId: helloworld
version: 1.0
package: helloworld
Y: : y
[INFO] ----------------------------------------------------------------------------
[INFO] Using following parameters for creating project from Old (1.x) Archetype: maven-archetype-webapp:1.0
[INFO] ----------------------------------------------------------------------------
[INFO] Parameter: basedir, Value: /cloud/maven/project
[INFO] Parameter: package, Value: helloworld
[INFO] Parameter: groupId, Value: helloworld
[INFO] Parameter: artifactId, Value: helloworld
[INFO] Parameter: packageName, Value: helloworld
[INFO] Parameter: version, Value: 1.0
[INFO] project created from Old (1.x) Archetype in dir: /cloud/maven/project/helloworld
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 03:06 min
[INFO] Finished at: 2017-11-03T20:46:22-07:00
[INFO] Final Memory: 14M/34M
[INFO] ------------------------------------------------------------------------
查看工程结构
[root@localhost project]# tree -a
.
└── helloworld
├── pom.xml
└── src
└── main
├── resources
└── webapp
├── index.jsp
└── WEB-INF
└── web.xml
6 directories, 3 files
再用maven 编译打包工程
[root@localhost helloworld]# mvn clean package
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building helloworld Maven Webapp 1.0
[INFO] ------------------------------------------------------------------------
Downloading from nexus-aliyun: http://maven.aliyun.com/nexus/content/groups/public/org/apache/maven/plugins/maven-resources-plugin/2.6/maven-resources-plugin-2.6.pom
就可以看到打包完成
[root@localhost helloworld]# tree -a
.
├── pom.xml
├── src
│ └── main
│ ├── resources
│ └── webapp
│ ├── index.jsp
│ └── WEB-INF
│ └── web.xml
└── target
├── classes
├── helloworld
│ ├── index.jsp
│ ├── META-INF
│ └── WEB-INF
│ ├── classes
│ └── web.xml
├── helloworld.war
└── maven-archiver
└── pom.properties
12 directories, 7 files