dongnan
总版主
总版主
  • 粉丝52
  • 发帖数2165
  • 铜币13236枚
  • 威望5838点
  • 银元150个
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 原创写手
阅读:1184回复:2

maven 入门

楼主#
更多 发布于:2017-03-27 16:03
安装
Linux 安装 maven 非常简单,参考这里:
mvn --version
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00)
Maven home: /usr/local/maven
Java version: 1.8.0_101, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.101-3.b13.el6_8.x86_64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-514.2.2.el7.x86_64", arch: "amd64", family: "unix"

使用 maven

1. 创建一个项目
第一次执行这个需要一定时间。这是因为Maven在下载最新的物件(jar插件和其他文件)到你的本地仓库
mvn archetype:generate -DgroupId=com.mycompany.app \
    -DartifactId=my-app \
    -DarchetypeArtifactId=maven-archetype-quickstart \
    -DinteractiveMode=false

[INFO] Scanning for projects...
省略....
Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/archetypes/maven-archetype-quickstart/1.0/maven-archetype-quickstart-1.0.jar (5 KB at 6.1 KB/sec)
[INFO] ----------------------------------------------------------------------------
[INFO] Using following parameters for creating project from Old (1.x) Archetype: maven-archetype-quickstart:1.0
[INFO] ----------------------------------------------------------------------------
[INFO] Parameter: basedir, Value: /
[INFO] Parameter: package, Value: com.mycompany.app
[INFO] Parameter: groupId, Value: com.mycompany.app
[INFO] Parameter: artifactId, Value: my-app
[INFO] Parameter: packageName, Value: com.mycompany.app
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] project created from Old (1.x) Archetype in dir: /my-app
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 04:55 min
[INFO] Finished at: 2017-03-14T13:09:22+08:00
[INFO] Final Memory: 14M/99M
[INFO] ------------------------------------------------------------------------

2. 项目的目录结构
tree my-app/
my-app/
├── pom.xml
└── src
    ├── main
    │   └── java
    │       └── com
    │           └── mycompany
    │               └── app
    │                   └── App.java
    └── test
        └── java
            └── com
                └── mycompany
                    └── app
                        └── AppTest.java

11 directories, 3 files
其中,src/main/java目录包含项目源代码,src/test/java目录包含检查源代码,pom.xml是项目的项目对象模型,或POM。


3. POM 文件
在Maven里,pom.xml文件是项目配置的核心。它是一个独立的配置文件,包含了你想要的方式下建立项目所必须的主要信息。
cat my-app/pom.xml
<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.mycompany.app</groupId>
  <artifactId>my-app</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>my-app</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>

4. 建设项目
cd my-app && mvn package
省略....
[INFO] Building jar: /my-app/target/my-app-1.0-SNAPSHOT.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:55 min
[INFO] Finished at: 2017-03-14T13:44:50+08:00
[INFO] Final Memory: 16M/146M
[INFO] ------------------------------------------------------------------------

打包完成后,在项目目录生一个子目录 target
ls target/
classes  maven-archiver  maven-status  my-app-1.0-SNAPSHOT.jar surefire-reports  test-classes

您可以使用以下命令测试新编译和打包的JAR:
java -cp target/my-app-1.0-SNAPSHOT.jar com.mycompany.app.App
将打印经典语句:
Hello World!


Maven阶段
尽管几乎没有一个全面的清单,这些都是执行最常用的默认生命周期阶段。
    validate:验证项目是正确的,所有必要的信息
    compile:编译项目的源代码
    test:使用合适的单元测试框架测试编译的源代码。 这些测试应该不需要代码被打包或部署
    package:把编译后的代码,并在其分发格式打包,例如一个JAR。
    integration-test:如果需要,处理和部署包到集成测试可以运行的环境
    verify:运行任何检查,以验证包是有效的,同时符合质量标准
    install:包安装到本地仓库中,用作本地其他项目的依赖;
    deploy:在集成或发布环境中进行,复制最终的包到远程仓库与其他开发者和项目共享。
#
    clean:清理之前建立创建的工件
    site:生成此项目的站点文档,

实行阶段实际上映射到底层的语言。 每阶段中执行的具体语言是取决于项目的包类型。

内容来自: 《maven官方文档》5分钟开始Maven
http://ifeve.com/getting_started_in_five_minutes/
https://maven.apache.org/guides/getting-started/maven-in-five-minutes.html

参考
:
部署基于Maven的war文件到Tomcat (单台服务器)
用Maven部署war包到远程Tomcat服务器 (多台服务器)
【手把手教你Maven】构建过程
使用Maven构建项目
Maven实战:pom.xml与settings.xml
Maven仓库介绍

#
dongnan
总版主
总版主
  • 粉丝52
  • 发帖数2165
  • 铜币13236枚
  • 威望5838点
  • 银元150个
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 原创写手
沙发#
发布于:2017-03-27 17:39
语法错误
/my-app/pom.xml: Unrecognised tag: 'plugin'

参考
http://stackoverflow.com/questions/20457368/plugins-unrecognized-tag-in-pom-xml
dongnan
总版主
总版主
  • 粉丝52
  • 发帖数2165
  • 铜币13236枚
  • 威望5838点
  • 银元150个
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 原创写手
板凳#
发布于:2017-08-03 11:32
maven 导入 第三方 jar包
目标
使用 maven,将项目依赖的三方 jar 包, 部署到本地仓库。

命令

mvn install:install-file -Dfile=lib/tech-sdk-2.0.2-jar-with-dependencies.jar -DgroupId=com.timev -DartifactId=tech-sdk-2.0.2-jar-with-dependencies -Dversion=1.0 -Dpackaging=jar

验证

将在本地 $HOME/.m2/repository/com/timev/ ,创建一个xxx-x.x.jar的文件及对应的 xxx-x.x.pom 文件。

参数
-Dfile,jar包的位置;
-DgroupId,远程仓库对应的DgroupId ;
-DartifactId, 远程仓库对应的 DartifactId ;
-Dversion,对应版本号 ;
#
游客

返回顶部