`
vivus
  • 浏览: 116164 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

maven笔记

 
阅读更多

手动下载maven依赖(without pom):

使用dependency:get。

如:

mvn dependency:get -DrepoUrl=http://10.2.2.10:8081/nexus/content/repositories/releases -DgroupId=org.apache.httpcomponents -DartifactId=httpclient -Dversion=4.2.1

http://stackoverflow.com/questions/884808/utility-for-downloading-artifacts-from-maven-repo-without-mvn-poms

http://stackoverflow.com/questions/1776496/a-simple-command-line-to-download-a-remote-maven2-artifact-to-the-local-reposito/1776808#1776808

http://stackoverflow.com/questions/3601570/how-to-download-jars-from-maven-central-without-writing-any-pom-xml

 

 

maven命令:

mvn clean compile

mvn clean test

mvn clean package // 打包到target目录

mvn clean install // 安装到本地库

使用Archetype生成项目骨架:

mvn archetype:generate // maven3直接运行这样的命令也只会解析最新的稳定版本,而maven2则下载最新的插件版本

mvn org.apache.maven.plugins:maven-archetype-plugin:2.0-alpha-5:generate // 如果是 Maven 2,最好运行这样的命令

// 我  们  实  际  上  是  在  运  行  插  件   maven-archetype-plugin  ,  注  意  冒  号  的  分  隔  ,  其  格  式  为groupId:artifactId:version:goal

 

指定编译JDK版本:

1.   <project>     

2.   …     

3.     <build>     

4.       <plugins>     

5.          <plugin>     

6.            <groupId>org.apache.maven.plugins</groupId>     

7.            <artifactId>maven-compiler-plugin</artifactId>     

8.            <configuration>     

9.              <source>1.5</source>     

10.             <target>1.5</target>     

11.           </configuration>     

12.         </plugin>     

13.      </plugins>     

14.    </build>     

15.  …     

16.  </project>

 

可利用finalName自定义打包后的文件名称

 

默认打包生成的 jar 是不能够直接运行的,因为带有 main 方法的类信息不会添加到 manifest 中(我们可以打开 jar 文件中的META-INF/MANIFEST.MF  文件,将无法看到  Main-Class  一行)。为了生成可执行的  jar  文件,我们需要借助maven-shade-plugin,配置该插件如下:

Java 代码       

1. <plugin> 

2.   <groupId>org.apache.maven.plugins</groupId>     

3.     <artifactId>maven-shade-plugin</artifactId>     

4.     <version>1.2.1</version>     

5.     <executions>     

6.       <execution>     

7.         <phase>package</phase>     

8.         <goals>     

9.           <goal>shade</goal>     

10.        </goals>     

11.        <configuration>     

12.          <transformers>     

13.            <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">

            <mainClass>com.juvenxu.mvnbook.helloworld.HelloWorld</mainClass>     

14.           </transformer>     

15.         </transformers>     

16.       </configuration>     

17.       </execution>     

18.    </executions>     

19.  </plugin>   

plugin  元 素 在  POM  中 的 相 对 位 置 应 该 在 <project><build><plugins> 下 面 。 我 们 配 置 了  mainClass  为com.juvenxu.mvnbook.helloworld.HelloWorld,项目在打包时会将该信息放到 MANIFEST 中。现在执行  mvn clean install,待 构 建 完 成 之 后 打 开   target/ 目 录 , 我 们 可 以 看 到   hello-world-1.0-SNAPSHOT.jar和original-hello-world-1.0-SNAPSHOT.jar,前者是带有  Main-Class  信息的可运行  jar,后者是原始的  jar,打开hello-world-1.0-SNAPSHOT.jar 的 META-INF/MANIFEST.MF,可以看到它包含这样一行信息: 

Main-Class: com.juvenxu.mvnbook.helloworld.HelloWorld 

现在,我们在项目根目录中执行该 jar 文件: 

D: \code\hello-world>java -jar target\hello-world-1.0-SNAPSHOT.jar 

Hello Maven 

控制台输出为 Hello Maven,这正是我们所期望的。 

 

maven坐标:

groupId: // 必须定义

artifactId: // 必须定义

version: // 必须定义

packaging:[jar|war|ear|ejb|pom|...] // default:jar;可选

classifier: // 定义构建输出的附属构件,不能直接在项目定义

 

项目构件文件名:

一般规则:artifactId-version[-classifier].packaging

 

依赖范围(scope):

compile:

test:

provided: // 对于编译和测试classpath有效,但在运行时无效,如servlet-api。

runtime: // 对于测试和运行classpath有效,但在编译主代码时无效,如JDBC驱动。

system: // 系统依赖范围,即本地依赖。与三种classpath的关系,和provided完全一致。必须通过systemPath元素显式指定依赖文件的路径。

import: // 不会对三种classpath产生实际的影响。

 

 

 依赖范围影响传递性依赖

 

compile

test

provided

runtime

compile

compile

-

-

compile

test

test

-

-

test

provided

provided

-

provided

provided

runtime

runtime

-

-

runtime

 

 

 

 

 

分享到:
评论

相关推荐

    黑马maven笔记第二天

    ### 黑马Maven笔记第二天知识点总结 #### Maven的核心优势 **1. 统一管理JAR包** - **节省空间**:Maven通过中央仓库管理所有项目的依赖,避免了重复下载相同JAR包的问题,有效减少了硬盘空间的占用。 - **依赖...

    黑马maven笔记,第一天

    ### 黑马Maven笔记详解 #### Maven简介与特点 Maven是一款强大的项目管理和构建工具,作为Apache基金会下的一个开源项目,它完全采用Java语言编写,主要用于管理Java项目。Maven通过标准化项目构建过程和依赖管理...

    Maven笔记Maven笔记Maven笔记

    Maven的安装: (首先保证JDK版本在1.6以上) 1: 通过配置MAVEN_HOME 和 %% %MAVEN_HOME%\bin 然后进行mvn -version 测试 掌握 -Xms 与 -Xmx的相关配置 2: Maven目录分析: 2.1: bin: 含有mvn运行的脚本 2.2...

    Maven笔记.pdf

    ### Maven核心知识点解析 #### Maven概述与价值 Maven是一个项目管理和综合工具,主要用于Java项目的构建、依赖管理和项目信息管理。通过Maven,开发者可以轻松地处理项目中的多个痛点问题,提升开发效率。 #####...

    maven笔记:maven-overlay-实战笔记

    【标题】:“maven笔记:maven-overlay-实战笔记” 在 Maven 的世界里,"overlay" 是一个重要的概念,主要用于Web项目的构建和部署。Maven overlay 技术允许你将多个项目的输出“重叠”在一起,形成一个新的项目,...

    maven笔记t-JavaWeb

    【标题】"maven笔记t-JavaWeb"主要聚焦于Java Web开发中Maven的使用,这是一套关于Maven的教程,旨在帮助开发者理解和掌握这个强大的构建工具。Maven是Apache软件基金会的一个项目,它简化了Java项目的构建、管理和...

    maven笔记.zip

    ** Maven 概述 ** Maven 是一个强大的项目管理和构建工具,主要应用于Java项目。它通过提供一套标准化的构建过程,使得项目的...通过学习Maven笔记,开发者可以更好地掌握这一强大的工具,提升项目开发的专业水平。

    maven笔记.docx

    【Maven笔记】 Maven是一个强大的Java项目管理工具,它主要解决了在软件开发过程中遇到的一系列问题,如依赖管理、项目构建以及环境一致性等。通过使用Maven,开发者可以更高效地管理和构建Java项目,避免手动复制...

    Maven笔记(2)-- 构建Java Project 及 Maven命令使用

    **Maven笔记(2)-- 构建Java Project 及 Maven命令使用** Maven是Apache组织开发的一个项目管理和综合工具,主要用于Java项目构建、依赖管理和项目信息管理。它通过一个统一的构建过程,使得项目的构建变得简单且...

    Maven笔记.docx

    **Maven笔记** Maven是Apache组织开发的一款Java项目管理工具,它的主要功能包括项目构建、依赖管理和仓库管理。Maven使得Java开发更加规范和高效,尤其在大型团队协作中,能够有效地解决版本冲突和自动化构建的...

    尚硅谷Maven课程笔记代码资源

    【尚硅谷Maven课程笔记代码资源】是一份全面学习Maven的资料集合,它涵盖了从基础到高级的各种知识点,旨在帮助开发者深入理解并熟练运用Maven进行自动化构建。该资源包含课件、源码和相关的笔记,使得学习过程更加...

    Maven笔记与资料.zip

    压缩包中的"笔记"和"资料"文件可能包含更深入的Maven教程、最佳实践、常见问题解答和案例研究等内容。学习这些资料有助于提升你在实际项目中的Maven应用能力,解决遇到的问题,并优化构建流程。 综上所述,Maven是...

    maven学习笔记maven学习笔记

    maven学习笔记maven学习笔记maven学习笔记

    maven笔记+教案

    ** Maven详解:构建Java项目的专业工具 ** Maven是一个基于项目对象模型(Project Object Model,POM)的概念,用于管理并构建Java项目。它通过一个简单的配置文件(pom.xml),自动化项目的构建、报告和依赖管理,...

    Maven笔记,内包含Maven核心程序解压和配置,命令行环境,IDEA环境,jar包3下载失败问题的解决方案

    Maven笔记,内包含Maven核心程序解压和配置,命令行环境,IDEA环境,jar包3下载失败问题的解决方案

    java-Maven笔记.docx

    Maven 是 Java 项目中一种流行的构建工具,能够帮助开发者更好地管理项目依赖关系、编译、打包和发布。下面是 Maven 的一些知识点: 1. Maven 的必要性:Maven 之所以需要,是因为在没有 Maven 之前,开发者需要...

    Maven笔记1

    【Maven笔记1】—— Maven入门 Maven是一款强大的Java项目管理和构建工具,它解决了传统项目构建中的诸多痛点,使得Java开发变得更加规范和高效。在本文中,我们将深入探讨Maven的基本概念、功能以及如何解决上述...

Global site tag (gtag.js) - Google Analytics