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