因为最近手头一个项目,有些问题需要更新POI,包管理实在头疼,长痛不如短痛,引入Maven管理依赖,事情变得简单很多,做了10几年的JAVA现在才玩Maven真实惭愧。不过确实很简单方便。罗列了下操作记录,编译以后学习回忆

首先是安装

    安装很简单 Ubuntu下用apt-get,CentOS下yum应该都能安装正常。前提要有JAVA,Windows下,默认Eclipse已经支持Maven了。

Ubuntu下

apt-get update     //更新源
apt-get install maven  //安装
mvn -version        //确认

当然事情一般都没有这么愉快,基本没有一下你就能安装好你需要的版本的情况,要么太新要么太旧,等发现会哭一会。所以先搞清楚要什么版本,然后手动安装比较靠谱

apt-get install wget  //安装Wget用来下载
wget --version  //确认正常动作
//下载你需要的版本
wget http://www-eu.apache.org/dist/maven/maven-3/3.5.2/binaries/apache-maven-3.5.2-bin.tar.gz
然后解压到特定目录,比如/usr/local/apache-maven-3.5.2 

修改配置文件.bashrc
export M2_HOME=/usr/local/apache-maven-3.5.2
export PATH=$M2_HOME/bin:$PATH
export M2=$M2_HOME/bin
//立马起效
source .bashrc

然后是常用命令

编译源代码
mvn compile
编译测试代码
mvn test-compile
清空
mvn clean
运行测试
mvn test
生产站点目录并打包
mvn site-deploy
安装当前工程的输出文件到本地仓库
mvn install
打包
mvn package
先清除再打包
mvn clean package
打成jar包
mvn jar:jar
生成eclipse项目  
mvn eclipse:eclipse
查看帮助信息
mvn help:help

接下来是如何使用Maven

a,简单JavaAPP

mvn archetype:generate -DgroupId=com.expcorp.demo.app -DartifactId=demo-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
src/main/java  存放项目的源代码
src/test/java  存放测试源代码

b,简单WEB站点

mvn archetype:generate -DgroupId=com.expcorp.demo.webapp -DartifactId=demo-web-app -DarchetypeArtifactId=maven-archetype-webapp -DinteractivMode=false
没有服务器,基本没什么意义,需要服务容器

c,简单SpringBoot站点

mvn archetype:generate -DgroupId=com.expcorp.demo.app -DartifactId=springboot-demo-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
在A的基础上,修改pom配置,加上SpringBoot
<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.expcorp.demo.app</groupId>
  <artifactId>springboot-demo-app</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>springboot-demo-app</name>
  <url>http://maven.apache.org</url>
 <!-- Inherit defaults from Spring Boot -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.9.RELEASE</version>
    </parent>

    <!-- Add typical dependencies for a web application -->
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

    <!-- Package as an executable jar -->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

改一下JAVA ,
package com.expcorp.demo.app;

import org.springframework.boot.*;
import org.springframework.boot.autoconfigure.*;
import org.springframework.stereotype.*;
import org.springframework.web.bind.annotation.*;

/**
 * Hello world!
 *
 */
@Controller
@EnableAutoConfiguration
public class App 
{


    @RequestMapping("/")
    @ResponseBody
    String home() {
        return "Hello World!!!!";
    }

    public static void main(String[] args) throws Exception {
        SpringApplication.run(App.class, args);
    }
}

创建JAR,执行,看看能不能跑

对了,编译可执行JAR要在Pom.xml加个Plugin

启动项设定
  <build>
    <pluginManagement>
    <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-jar-plugin</artifactId>
      <configuration>
          <source>1.8</source>
          <target>1.8</target>
          <archive>
              <manifest>
                  <mainClass>com.expcorp.demo.app.App</mainClass>
                  <addClasspath>true</addClasspath>
              <classpathPrefix>lib/</classpathPrefix>
              </manifest>
  
          </archive>
          <classesDirectory>
          </classesDirectory>
      </configuration>
  </plugin>
  </plugins>    
  </pluginManagement>
</build>

最后修改日期: 2018年1月17日

作者