Maven常用命令:
clean:清除maven的输出
Validate:验证工程是否正确,所有需要的资源是否可用。
Compile:编译项目的源代码。
test-compile:编译项目测试代码。
Test:使用已编译的测试代码,测试已编译的源代码。
Package:已发布的格式,如jar,将已编译的源代码打包。
integration-test:在集成测试可以运行的环境中处理和发布包。
Verify:运行任何检查,验证包是否有效且达到质量标准。
Install:把包安装在本地的repository中,可以被其他工程作为依赖来使用
Deploy:在整合或者发布环境下执行,将最终版本的包拷贝到远程的repository,使得其他的开发者或者工程可以共享
创建IDE文件 mvn eclipse:eclipse
关于pom.xml
a) 总览
<project>
<modelVersion>4.0.0</modelVersion>
<!-- The Basics -->
<groupId>...</groupId>
<artifactId>...</artifactId>
<version>...</version>
<packaging>...</packaging>
<dependencies>...</dependencies>
<parent>...</parent>
<dependencyManagement>...</dependencyManagement>
<modules>...</modules>
<properties>...</properties>
<!-- Build Settings -->
<build>...</build>
<reporting>...</reporting>
<!--以下可以省略-->
<!-- More Project Information -->
<name>...</name>
<description>...</description>
<url>...</url>
<inceptionYear>...</inceptionYear>
<licenses>...</licenses>
<organization>...</organization>
<developers>...</developers>
<contributors>...</contributors>
<!-- Environment Settings -->
<issueManagement>...</issueManagement>
<ciManagement>...</ciManagement>
<mailingLists>...</mailingLists>
<scm>...</scm>
<prerequisites>...</prerequisites>
<repositories>...</repositories>
<pluginRepositories>...</pluginRepositories>
<distributionManagement>...</distributionManagement>
<profiles>...</profiles>
</project>
b) 基本信息
• groupId:项目或者组织的唯一标志,并且配置时生成的路径也是由此生成,如com.taobao.sportal生成的相对路径为:/com/taobao/sportal
• artifactId: 项目的通用名称
• version:项目的版本
• packaging: 打包的机制,如 jar,, ejb, war, ear, rar, par
• classifier: 分类
c) 依赖关系dependencies(依赖,继承,合成)
dependencyManagement:
用于父项目配置共同的依赖关系,主要配置依赖包相同因素,如版本,scope。
版本号在父项目pom.xml声明,便于统一控制各子项目的依赖
I依赖
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.0</version>
<type>jar</type>
<scope>test</scope>
<optional>true</optional>
</dependency>
……
</dependencies>
groupId, artifactId, version:描述了依赖的项目唯一标志
type:相应的依赖产品包形式,如jar,war
scope:用于限制相应的依赖范围,包括以下的几种变量:
• compile :默认范围,用于编译
• provided:类似于编译,但支持你期待jdk或者容器提供,类似于classpath
• runtime:在执行时,需要使用
• test:用于test任务时使用
• system:需要外在提供相应得元素。通过systemPath来取得
systemPath: 仅用于范围为system。提供相应的路径,非常不好用
optional: 标注可选,当项目自身也是依赖时。用于连续依赖时使用
可以设置独占性,解决版本冲突:
<dependencies>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-need</artifactId>
<version>2.0</version>
<exclusions>
<exclusion>
<groupId>org.apache.maven</groupId>
<artifactId>maven-core</artifactId>
</exclusion>
</exclusions>
</dependency>
表示项目maven-need需要maven-core,但不想引用maven-core
II继承
父项目的pom.xml
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.taobao.sportal</groupId>
<artifactId>my-parent</artifactId>
<version>2.0</version>
<packaging>pom</packaging>
</project>
子项目pom.xml
<project>
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId> com.javaeye.sportal </groupId>
<artifactId>my-parent</artifactId>
<version>2.0</version>
</parent>
<artifactId>my-project</artifactId>
</project>
III合成
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.taobao.sportal</groupId>
<artifactId>my-parent</artifactId>
<version>2.0</version>
<modules>
<module>my-project1<module>
<module>my-project2<module>
</modules>
</project>
d)Build
<build>
<defaultGoal>install</defaultGoal>
<directory>${basedir}/target</directory>
<finalName>${artifactId}-${version}</finalName>
<!—资源 -->
<resources>
<resource>
<targetPath>META-INF/common</targetPath>
<filtering>false</filtering>
<directory>${basedir}/src/main/java</directory>
<includes>
<include>*.xml</include>
</includes>
<excludes>
<exclude>**/*.properties</exclude>
</excludes>
</resource>
</resources>
<testResources>
<!--插件 -->
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.0</version>
<extensions>false</extensions>
<inherited>true</inherited>
<configuration>
<classifier>test</classifier>
</configuration>
<dependencies>...</dependencies>
<executions>...</executions>
</plugin>
</plugins>
...
</testResources>
<!-- 过滤 -->
<filters>
<filter>filters/XX.properties</filter>
</filters>
...
</build>
defaultGoal: 定义默认的目标或者阶段。如install
directory: 编译输出的目录
finalName: 生成最后的文件的样式
filter: 定义过滤,用于替换相应的属性文件
resources:
resource的列表,用于包括所有的资源
targetPath: 指定目标路径,用于放置资源,用于build
filtering: 是否替换资源中的属性
directory: 资源所在的位置
includes: 样式,包括那些资源
excludes: 排除的资源
testResources: 测试资源列表
plugin:
extensions: true or false,是否装载插件扩展。默认false
inherited: true or false,是否此插件配置将会应用于poms,那些继承于此的项目
configuration: 指定插件配置
dependencies: 插件需要依赖的包
executions: 用于配置execution目标,一个插件可以有多个目标
分享到:
相关推荐
Maven 无疑是相当成功的,这一点从越来越多的开源项目开始使用 Maven 就可以看出。Maven 取得成功的原因很简单:在简化构建脚本的同时,功能并没有缩水,反而有所增强;提供汇集项目信息的工具,并以相当友好的方式...
描述中提到的“过时的资料库”进一步强调了这一点。在软件开发中,保持依赖项和工具的最新状态至关重要,因为更新通常会带来性能提升、新功能以及对安全漏洞的修复。过时的仓库可能会导致兼容性问题,增加项目的风险...
标签“Maven”进一步确认了这一点,因为Maven是Java开发中广泛使用的项目管理和构建工具。 Maven是一个强大的自动化构建工具,主要用于Java项目。它简化了构建过程,通过依赖管理和项目信息管理来帮助开发者。Maven...
另一种机制采用xml文件形式实现dao、service、controller层封装,具体业务类只需继承就可实现基本的CRUD操作,整个工程导入即可运行(一个月心算之作,稍贵一点,下载以后大部分资料都不需要看了)
"一点知识学院"是一个专为在线课程资料管理而设计的系统,主要服务于app手机端的用户。这个系统采用了现代化的开发框架SpringBoot以及对象关系映射框架JPA,旨在提供高效、稳定且易于维护的平台服务。下面我们将深入...
开发者需要注意这一点,以便适应可能出现的变化。 **1.3 源代码与WIKI** jBPM的源代码可通过指定的SVN地址获取,而相关的构建过程则可以通过WIKI文档详细了解。WIKI页面提供了丰富的资料,有助于开发者更深入地理解...
通过使用SQLCipher,开发者可以在SQLite数据库中存储敏感信息,如用户密码、个人资料等,这些信息在未解密的情况下是无法读取的。 使用SQLCipher2.1的过程通常包括以下步骤: 1. **安装与集成**:SQLCipher作为一...
这个项目是基于`IDEA`创建,我这里把项目转成了`Eclipse`的项目,如果你使用Eclipse的话也可以直接导入,只是步骤更繁琐一点,[Eclipse导入步骤](/note/EclipseImport.md) ## 项目编码 项目总结可能比较的长,**密集...
5. **资料管理**:包括用户管理、角色权限分配、系统设置等,确保系统安全,同时便于维护和更新企业内部的各类信息。 6. **系统管理**:系统管理模块包含了日志管理、数据备份与恢复、系统升级等功能,保障系统的...
**JBPM相关学习资料概述** JBPM(JBoss Business Process Management)是一款开源的工作流程管理系统,由Red Hat公司维护,主要用于企业级业务流程管理和工作流自动化。它提供了完整的BPM生命周期管理,包括流程...
【描述】"仿Dubbo的ExtensionLoader maven工程"表明这是一个基于Maven构建的项目,遵循Maven的目录结构和依赖管理规则。在这样的工程中,开发者通常会复用和理解Dubbo源码中的ExtensionLoader工作原理,通过编写自己...
### Mockito的重要入门资料 #### 学习目标与背景 在软件开发过程中,单元测试作为确保代码质量的关键步骤之一,其重要性不言而喻。Mockito作为一种流行的单元测试框架,被广泛应用于Java项目的单元测试中。它通过...
SSM-DemoSSM(spring+springmvc+mybatis)框架 Demo应某网络友人邀约,需要一个SSM框架的Demo作为基础学习资料,...本Demo是在IDEA下搭建的Maven项目,在进行下面阅读前先了解这一点!搭建框架的详细步骤见本人博客:
常见的软件开发工具有版本控制工具(如Git)、项目管理工具(如Jira)、集成开发环境(IDE,如Visual Studio、Eclipse)、代码编辑器、自动化构建工具(如Maven)、调试器、性能分析器等。 2. **自学考试**:高等...
例如,可能包含一些常用的Java开发工具,如IDEA的配置文件、Maven或Gradle构建脚本,甚至是自动化测试工具如JUnit或Mockito的示例。此外,也可能是一些实用的shell脚本,用于日常开发中的文件管理、代码格式化等任务...
通过上述内容,我们了解到Spring Boot Reference Guide不仅是一个入门指南,它还包含了Spring Boot项目构建、代码结构、配置、自动配置和高级话题的深入讲解,是一个全面覆盖Spring Boot使用和开发的参考资料。...
这些模块可能涵盖Java的基础语法、面向对象编程、异常处理、集合框架、多线程、网络编程、I/O流、数据库操作(如JDBC)、Swing或JavaFX GUI设计、Java Web开发(如Servlet和JSP)、Spring框架、Maven项目管理、JUnit...
**JFreeChart 实例:Java 生成分布图** JFreeChart 是一个强大的开源 Java 图形库,用于生成高质量的图表...在实际开发中,可以结合 `jfreechart` 和 `jfreechar-Demo` 学习资料,深入理解和掌握 JFreeChart 的使用。
在软件开发中,Builder可以指代负责构建过程的自动化工具,如Maven、Gradle、CMake等,这些工具能够自动化编译、链接、打包等一系列任务,极大地提高了开发效率和代码质量。 压缩包内的 "build.log" 文件是构建日志...
注意:这个例子有一点修改。 原始版本在此存储库的第一次提交中。 我删除了 ejb 依赖项(对示例没有用) 我添加了一个新的 maven 目标: mvn exec:java 。 因此,这个示例可以在没有 IDE 依赖的情况下运行。 另见./...