`

Maven常用命令、配置、POM、仓库

阅读更多
(一)常用命令
1)Maven 导出依赖lib 并打包
mvn clean dependency:copy-dependencies -DoutputDirectory=target/classes/lib  -DincludeScope=runtime package
 
2)忽略测试错误
mvn test -Dmaven.test.failure.ignore=true
 
3) 安装跳过单元测试
mvn install -Dmaven.test.skip=true
 
4)运行
mvn exec:java -Dexec.mainClass=org.sonatype.mavenbook.weather.Main
好处:不用向classpath中添加所有的依赖
 
5)独立jar加入本地仓库
mvn install:install-file -Dfile=jar包的位置 -DgroupId=上面的groupId -DartifactId=上面的artifactId -Dversion=上面的version -Dpackaging=jar
 
如:mvn install:install-file -DgroupId=org.apache.commons -DartifactId=commons-email -Dversion=1.3.2 -Dpackaging=jar -Dfile=E:\workspace\sca-crawler\lib\commons-email-1.3.2.jar
 
6)查看插件信息
mvn help:describe -Dplugin=exec -Dfull 
 
(二)插件定制
 
向插件传参数定制行为
 
1)设置主类

<build>
     <plugins>
          <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-jar-plugin</artifactId>
               <version>2.4</version>
               <configuration>
                    <outputDirectory>target</outputDirectory>
                    <archive>
                         <manifest>
                              <addClasspath>true</addClasspath>
                              <classpathPrefix>./lib/</classpathPrefix>
                              <mainClass>com.ailk.tosd.ua.hadoop.tool.UAClassifierJob</mainClass>
                         </manifest>
                    </archive>
               </configuration>
          </plugin>
     </plugins>
</build> 
 
2)测试过程测试失败错误:mvn test
 
<build>
          <plugins>
               <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <configuration>
                         <testFailureIgnore>true</testFailureIgnore>
                    </configuration>
               </plugin>
          </plugins>
</build>
 
3)安装过程跳过测试 :mvn install
 
<build>
          <plugins>
               <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <configuration>
                         <skip>true</skip>
                    </configuration>
               </plugin>
          </plugins>
     </build>
 
4)编译插件编译环境1.6
 
<build>
          <pluginManagement>
               <plugins>
                    <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-compiler-plugin</artifactId>
                         <configuration>
                              <source>1.6</source>
                              <target>1.6</target>
                         </configuration>
                    </plugin>
               </plugins>
          </pluginManagement>
</build>
 
注:使用sun 专用api
 
<plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <configuration>
                         <source>1.6</source>
                         <target>1.6</target>
                         <compilerArguments>
                              <verbose />
                              <bootclasspath>${java.home}/lib/rt.jar</bootclasspath>
                         </compilerArguments>
                    </configuration>
               </plugin>
 
5)配置 copyDependency是只拷贝compile 作用域的
     <build>
          <pluginManagement>
               <plugins>
                    <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-dependency-plugin</artifactId>
                         <configuration>
                              <includeScope>runtime</includeScope>
                         </configuration>
                    </plugin>
               </plugins>
          </pluginManagement>
     </build>
  • runtime : runtime and compile dependencies,
  • compile : compile, provided, and system dependencies,
  • test (default) : all dependencies,
  • provided : provided dependencies,
  • system : system dependencies.
6)打包所有依赖的jar 中的class 打到同一个包里
<build>
          <plugins>
               <plugin>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <configuration>
                         <archive>
                              <manifest>
                                   <addClasspath>true</addClasspath>
                                   <classpathPrefix>./lib/</classpathPrefix>
                                   <!-- <mainClass>com.ailk.tosd.ua.hadoop.tool.UAClassifierJob</mainClass> -->
                              </manifest>
                         </archive>
                         <descriptorRefs>
                              <descriptorRef>jar-with-dependencies</descriptorRef>
                         </descriptorRefs>
                    </configuration>
               </plugin>
          </plugins>
     </build>
命令:mvn assembly:assembly  
说明:生成xxxx-1.0-jar-with-dependencies.jar的打包文件, 里面将包含所有的依赖文件
 
三 配置setting.xml
 
1)配置本地库
 
<localRepository>E:\Workspace\Java\Env\Maven\repositories</localRepository>
 
2)配置中央仓库镜像
 
<mirror>
      <id>maven.net.cn</id>
      <name>one of the central mirrors in china</name>
      <url>http://maven.net.cn/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>
 </mirror>
 
3)配置其他仓库
 
<profile> 
      <id>repositoriesProfile</id> 
      <!-- repositories and pluginRepositories here--> 
      <repositories> 
              <repository> 
                <id>sonatype</id>  <!--id必须唯一-->
                <name>Sonatype Mirror</name>  <!--描述-->
                <url>http://repository.sonatype.org/content/groups/public/</url> 
                <releases> 
                  <enabled>true</enabled>  <!--可以下载releases版本-->
                </releases> 
                <snapshots> 
                  <enabled>false</enabled>   <!--禁止下载snapshots版本-->
                </snapshots> 
                  </repository> 
            </repositories> 
            <pluginRepositories> 
              <pluginRepository> 
                <id>sonatype</id> 
                <name>Sonatype Mirror</name> 
                <url>http://repository.sonatype.org/content/groups/public/</url> 
                <releases> 
                  <enabled>true</enabled> 
                </releases> 
                <snapshots> 
                  <enabled>false</enabled> 
                </snapshots>     
              </pluginRepository> 
            </pluginRepositories>
    </profile>  
 
激活仓库:
 
  <activeProfiles>
    <activeProfile>repositoriesProfile</activeProfile>
  </activeProfiles>
 
(三)常用参数
mvn -e 显示详细错误
mvn -U 强制更新snapshot类型的插件或依赖库(否则maven一天只会更新一次snapshot依赖)
mvn -o 运行offline模式,不联网更新依赖
 
(四)其他问题解决
 
1 存在*.lastUpdated文件无法更新jar
 
     使用maven构建的项目,当本地jar文件不存在时,maven会到中央仓库下载,如果存在网络等原因,jar文件下载未成功,相应目录会存在lastUpdated文件,因为有这个lastUpdated文件所以以后都不会真正下载对应ja了。 
     解决方法:
     1)在执行mvn compile 之前把lastUpdated 文件删除。
     2)使用 mvn -U clean install 强制更新
分享到:
评论

相关推荐

    Maven常用命令大全与pom文件讲解

    -D传入属性参数-P使用pom中指定的配置-e显示maven运行出错的信息-o离线执行命令,即不去远程仓库更新包-X显示maven允许的debug信息-U强制去远程参考更新snapshot包例如mvninstall-Dmaven.test.skip=true-Poracle其他...

    maven常用命令.docx

    以下是对标题和描述中提及的Maven常用命令的详细解释: 1. `mvn clean`:这个命令用于清理项目,删除`target`目录下的所有生成物,包括编译后的类文件、测试结果等。 2. `mvn compile`:编译项目的源代码,将`src/...

    maven 常用命令集合

    maven 常用命令集合 Maven 是一个基于项目对象模型(Project Object Model,POM)的项目管理工具,主要用于 Java 项目的构建、测试和部署。Maven 的强大之处在于其提供了一种标准化的方式来构建、测试和部署项目,...

    maven常用的命令

    Maven 常用命令 Maven 是一个基于项目对象模型(Project Object Model,POM)的项目管理工具,主要用于管理和构建 Java 项目。以下是 Maven 中的一些常用命令: 1. 创建项目 Maven 提供了 archetype 机制来快速...

    maven常用命令以及以个测试项目

    ### Maven常用命令 1. **初始化项目结构**: - `mvn archetype:generate` 是用于创建一个新的Maven项目的基础框架。你可以根据提示选择对应的archetype,如maven-archetype-quickstart,来快速生成一个简单的...

    maven配置命令及项目部署

    以下是一些常用的maven配置命令: * mvn -v:查看maven版本 * mvn compile:进行编译 * mvn test:运行测试类 * mvn package:生成jar包 * mvn clean:删除target目录 * mvn install:将jar包安装到本地仓库 * mvn ...

    maven常用命令.txt

    ### Maven常用命令详解 #### 1. `mvn -v` - **命令**: `mvn -v`(注意:实际命令应为 `mvn --version` 或 `mvn -version`) - **功能**: 显示Maven当前版本信息。 - **应用场景**: 当需要确认当前使用的Maven版本时...

    maven常用命令

    ** Maven 常用命令详解 ** Maven 是一个强大的构建工具,主要用于管理 Java 项目的构建、依赖和文档生成。以下是一些 Maven 的常用命令,它们可以帮助开发者更有效地操作项目。 1. **显示插件的所有 Goal** 使用 ...

    maven 常用命令

    一、Maven常用命令 1. 初始化项目结构: `mvn archetype:generate` - 这个命令用于创建一个新的Maven项目,根据提示选择相应的 archetype(项目模板)来生成基础项目结构。 2. 编译源代码: `mvn compile` - ...

    Maven使用命令创建工程,打包工程和常用命令使用的代码文件

    本篇文章将深入探讨如何使用Maven命令来创建工程、打包工程以及掌握一些常用的Maven命令。 首先,让我们了解Maven的核心概念。Maven基于项目对象模型(Project Object Model,POM),这是一个XML文件,包含了项目的...

    Maven 常用命令都准备好给你了.docx

    以下是一些Maven的常用命令及其详细解释: 1. **创建Maven项目**: - `mvn archetype:create -DgroupId=packageName -DartifactId=projectName`:创建一个基本的Java项目。 - `mvn archetype:create -DgroupId=...

    maven常用包

    总结起来,"maven常用包"涵盖了Maven的核心功能,包括POM、依赖管理、插件使用、项目结构以及个性化配置。通过掌握这些知识,开发者可以高效地管理和构建Java项目。在实际开发中,Maven不仅简化了构建流程,还降低了...

    maven基本命令详解

    还有一些其他的常用命令可以帮助开发者更好地管理 Maven 项目: - 显示当前项目的 POM 文件:`mvn help:effective-pom` - 分析项目依赖关系:`mvn dependency:analyze` 和 `mvn dependency:tree` - 跳过测试编译:`...

    maven本地仓库下载

    此外,Maven的pom.xml文件是项目的配置中心,包含了项目信息、依赖、构建设置等关键信息。 总结来说,Maven本地仓库是Maven生态系统的关键部分,它存储项目依赖,提高了开发效率。通过理解其工作原理和管理方式,...

    MAVEN-配置apache-maven-3.5.2.zip

    - 常用的构建命令如`mvn clean`清理项目,`mvn compile`编译源代码,`mvn package`打包项目,`mvn install`将打包后的文件安装到本地仓库。 5. **依赖管理** - Maven通过POM中的`&lt;dependencies&gt;`标签管理项目依赖...

    Maven2__配置

    **四、Maven 常用命令** 1. `mvn clean`:清理项目生成的目标文件 2. `mvn compile`:编译源代码 3. `mvn test`:运行测试 4. `mvn package`:打包项目,生成 JAR 或 WAR 文件 5. `mvn install`:将项目安装到本地...

    maven安装以及配置

    要配置 Maven 仓库,需要编辑 `settings.xml` 文件: - 该文件通常位于 Maven 安装目录的 `conf` 子目录下。 - 配置本地仓库路径:在 `&lt;localRepository&gt;` 标签内指定仓库位置,如 `&lt;localRepository&gt;D:/summary/...

Global site tag (gtag.js) - Google Analytics