项目构建
在构建maven项目时,关于Archetype骨架的选择一般有2种:webapp( web项目)、quickstart(java简单工程)
命令
Maven compile: 将工程的所有源码和配置文件编译输出到项目根目录的target/classes中
Maven package:将当前项目中所运行的资源打成java工程的包,java/war
Maven install: 将当前项目资源放在本地库中,形成库管理文件,供别人使用
Maven deploy:将当前项目上传到远程仓库,协同开发,仓库地址需要配置
Maven test:测试并生成测试日志
插件
<build> <plugins> <plugin><!--配置生成源码包--> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <version>3.0.1</version> <executions> <execution> <id>attach-sources</id> <goals> <goal>jar</goal> </goals> </execution> </executions> </plugin> </plugin> </plugins> </build>
依赖范围
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>4.3.7.RELEASE</version> <scope>XXX</scope> </dependency>
<scope></scope>依赖范围有:
1. compile(默认):编译范围,编译、打包、安装、发布全部生命周期都存在该依赖资源
2. test:测试范围,测试时加载依赖资源,打包、安装、发布都不参与
3. runtime:运行时范围,和compile唯一的区别就是不参加编译,但是必须参加运行、打包阶段;例如JDBC
4. provided:提供范围,例如:servlet-api,在编辑servlet,web应用时必须使用provided,但是运行、打包安装阶段不参加,防止tomcat执行冲突
5. system:系统范围,使用在本机环境中存在需要使用的jar包资源;<systemPath>D:***.jar</systemPath>,该方式可以参与maven打包发布