因为最近手头一个项目,有些问题需要更新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>