常用 maven 指令

一. 常用指令

    1) 生成eclipse项目: mvn clean eclipse:clean eclipse:eclipse

        如果构建项目时需要下载依赖包的源文件,需要在此后追加"-DdownloadSources=true"

    2) 部署到本地库: mvn clean source:jar install -Dmaven.test.skip=true

        source:jar表示生成源文件(*-source.jar)

    3) 通过指令生成maven项目: mvn archetype:create -DgroupId=com.test.demo -DartifactId=test

        如果要生成一个web项目,需要在此后追加"-DarchetypeArtifactId=maven-archetype-webapp"

 

二.常用插件

    1) compiler: 编译源文件

Java代码  

  1. <plugin>  
  2.     <groupId>org.apache.maven.plugins</groupId>  
  3.     <artifactId>maven-compiler-plugin</artifactId>  
  4.     <version>3.1</version>  
  5.     <configuration>  
  6.       <source>1.6</source>  
  7.       <target>1.6</target>  
  8.     </configuration>  
  9. </plugin>  

    可以通过"mvn compiler:compiler"来编译,[参考]

    2) resources: 打包时将resource文件拷贝到classpath下

Java代码  

  1. <resources>  
  2.     <resource>  
  3.         <directory>src/main/resources</directory>  
  4.                 <!-- 部署jar时,将会排除exclude下的文件进入jar,在web项目中,通常将properties文件排除在jar之外,而是放在classes文件中(参见war插件) -->  
  5.         <excludes>  
  6.             <exclude>*.properties</exclude>  
  7.         </excludes>  
  8.         <filtering>true</filtering>  
  9.     </resource>  
  10. </resources>  
  11. <plugin>  
  12.     <groupId>org.apache.maven.plugins</groupId>  
  13.     <artifactId>maven-resources-plugin</artifactId>  
  14.     <version>2.6</version>  
  15.     <configuration>  
  16.       <encoding>UTF-8</encoding>  
  17.     </configuration>  
  18. </plugin>  

    [参考] 

   3) jar: 将项目打包成jar,也可以是"可运行的java"程序

Java代码  

  1. <plugin>  
  2.     <groupId>org.apache.maven.plugins</groupId>  
  3.     <artifactId>maven-jar-plugin</artifactId>  
  4.     <configuration>  
  5.       <archive>  
  6.         <manifest>  
  7.           <!-- 是否将项目的classpath添加到manifest-->  
  8.           <addClasspath>true</addClasspath>  
  9.           <!-- 指定main方法 -->  
  10.           <mainClass>com.test.MainClass</mainClass>  
  11.         </manifest>  
  12.       </archive>  
  13.     </configuration>  
  14. </plugin>  

    可以通过"mvn jar:jar"运行打包为jar文件,[参考]

    4) war: 将项目打包为war

Java代码  

  1. <plugin>  
  2.     <groupId>org.apache.maven.plugins</groupId>  
  3.     <artifactId>maven-war-plugin</artifactId>  
  4.     <version>2.4</version>  
  5.     <configuration>  
  6.           <!-- 是否将classes文件部署成jar包 -->  
  7.       <archiveClasses>true</archiveClasses>  
  8.       <webResources>  
  9.         <resource>  
  10.           <!-- 相对pom.xml的目录 -->  
  11.           <directory>src/main/resources/</directory>  
  12.           <!-- 文件目标位置 -->  
  13.           <targetPath>WEB-INF/classes</targetPath>  
  14.           <includes>  
  15.             <include>*.xml</include>  
  16.             <include>*.properties</include>  
  17.           </includes>  
  18.           <!--  
  19.           <excludes>  
  20.             <exclude>**/image2</exclude>  
  21.           </excludes>  
  22.           -->  
  23.         </resource>  
  24.       </webResources>  
  25.     </configuration>  
  26. </plugin>  

    可以通过"mvn war:war"来生成文件,[参考] 

    5) source: 生成source文件

Java代码  

  1. <plugin>  
  2.     <groupId>org.apache.maven.plugins</groupId>  
  3.     <artifactId>maven-source-plugin</artifactId>  
  4.     <version>2.2.1</version>  
  5.     <configuration>  
  6.       <!-- 相对当前的输出路径 ,默认在target下  
  7.       <outputDirectory>target/</outputDirectory>  
  8.       -->  
  9.       <!-- 生成的文件名称,默认为"<build>.<fileName>-source.jar"  
  10.       <finalName>tttt.jar</finalName>  
  11.       -->  
  12.       <attach>false</attach>  
  13.     </configuration>  
  14. </plugin>  

   可以通过"mvn source:jar"等指令运行,可以通过追加"javadoc:javadoc"生成javadoc文件,[参考]  

    6) eclipse/IDEA:

    可以通过"mvn eclipse:eclipse" 或者"mvn idea:idea"生成相应的工程,[参考]

 

三. 将项目发布到nexus上.

   1) 在maven的setting.xml中新增服务

Xml代码  

  1. <servers>  
  2.     <server>    
  3.       <id>nexus-releases</id>    
  4.       <username>admin</username>    
  5.       <password>admin123</password>    
  6.     </server>    
  7.     <server>    
  8.       <id>nexus-snapshots</id>    
  9.       <username>admin</username>    
  10.       <password>admin123</password>    
  11.     </server>  
  12. </servers>  
  13. <!-- 项目依赖包库 -->  
  14. <profiles>  
  15.     <profile>  
  16.         <id>dev</id>  
  17.           <repositories>  
  18.              <repository>  
  19.                  <id>nexus</id>  
  20.                  <url>http://192.168.0.132:8080/nexus/content/groups/public/</url>  
  21.                  <releases>  
  22.                     <enabled>true</enabled>  
  23.                  </releases>  
  24.                  <snapshots>  
  25.                     <enabled>true</enabled>  
  26.                  </snapshots>  
  27.               </repository>  
  28.             </repositories>             
  29.             <pluginRepositories>  
  30.                 <pluginRepository>  
  31.                     <id>nexus</id>  
  32.                     <url>http://192.168.0.132:8080/nexus/content/repositories/central/</url>  
  33.                     <releases>  
  34.                         <enabled>true</enabled>  
  35.                     </releases>  
  36.                     <snapshots>  
  37.                         <enabled>true</enabled>  
  38.                     </snapshots>  
  39.                 </pluginRepository>  
  40.             </pluginRepositories>  
  41.     </profile>  
  42. </profiles>  
  43. <activeProfiles>  
  44.     <activeProfile>dev</activeProfile>  
  45. </activeProfiles>  

    2) pom.xml文件中指定发布目标位置:

Java代码  

  1. <distributionManagement>  
  2.     <repository>  
  3.         <id>nexus-releases</id><!-- 和setting.xml对应 -->  
  4.         <url>http://192.168.0.132:8080/nexus/content/repositories/releases/</url>  
  5.     </repository>  
  6. </distributionManagement>  

    使用"mvn source:jar deploy"即可;建议将开发过程中的jar发布到snapshot中,同时如果nexus设定了"Disable reploy"(不允许重复发布),将会导致同一个版本的项目不能被多次发布(400错误).  

原文链接:[http://wely.iteye.com/blog/2228609]

时间: 2024-08-03 10:40:09

常用 maven 指令的相关文章

【转载】常用 maven 指令

本文转载自http://shift-alt-ctrl.iteye.com/blog/1939783   mvn package-DskipTests  打包并且跳过测试   一. 常用指令     1) 生成eclipse项目: mvn clean eclipse:clean eclipse:eclipse         如果构建项目时需要下载依赖包的源文件,需要在此后追加"-DdownloadSources=true"     2) 部署到本地库: mvn clean source

常用Maven插件介绍(下)

转自:http://www.infoq.com/cn/news/2011/05/xxb-maven-8-plugin     我们都知道Maven本质上是一个插件框架,它的核心并不执行任何具体的构建任务,所有这些任务都交给插件来完成,例如编译源代码是由maven- compiler-plugin完成的.进一步说,每个任务对应了一个插件目标(goal),每个插件会有一个或者多个目标,例如maven- compiler-plugin的compile目标用来编译位于src/main/java/目录下的

Linux 常见的系统管理 + 网络管理 + 常用工具指令(简单的程序安装,如MySQL)

常见系统管理(凡是涉及到修改,就一定要用root权限) 轻易不要使用su去切换到root的身份 普通用户使用sudo来执行root权限的命令 如,将hadoop用户添加到sudoers文件中去 vi /etc/sudoers root ALL=(ALL) ALL hadoop ALL=(ALL) ALL 磁盘空间信息查看 df -h 查看磁盘空间状态信息 du -sh * 查看当前目录下所有子目录和文件的汇总大小 进程信息查看 free 查看内存使用状况 后面加个m 就是带个单位撒 top 查看

SEO高级功夫:常用搜索指令的综合使用

在前面的文章做SEO一定要说的那件事:小指令帮大忙中,分别和大家分享了十三个高级搜索指令的使用技巧,相信这些技巧在平时中一定能够帮助大家找到更加精确的结果,因为每个指令都有其独特的用法.在平时做SEO的时候,需要找到自身和竞争对手的一些情况,所以单单使用某种命令也许达不到精确的结果,就需要我们综合使用这些高级指令.今天和大家分享的主题就是高级指令的综合使用技巧,希望通过本文能提高大家做SEO的效率. inurl:gov SEO类型 这个指令就是返回页面中包含SEO的结果,同时url中包含有gov

Android 图解逆向工程中ARM常用汇编指令(一)

我们走得太快,灵魂都跟不上了. 微小的幸福就在身边,容易满足就是天堂. 在逆向和爆破中我们经常会在IDA中接触到汇编,一般做安卓的不会太了解VB回编等,不太了解的同学可以先查看上篇文章<Android ARM常用的汇编指令合集> 再来继续我们的学习,我们先来看张图. 这个view里面有 PUSH/LDR/SUB/MOVS/BLX/SUBS/BEQ/CMP ,这些差不多都是常见的,不过也不需要看得懂,理解这个指令即可,接下来我们就来分析下这些指令分别有什么作用吧. 先引入 概念性 东西,免得大家

转 OC之iOS开发常用Unix指令

在终端中输入指令 pwd 查看当前目录 ls 列出当前目录下所有文件 ls –l 详细列出当前目录下文件的属性 mkdir 在当前目录下新建文件夹(mkdir 文件名) touch 在当前文件夹下新建文件(touch xxx.txt) cd 改变当前目录(cd 新目录/) open 打开文件或文件夹 clear 清空终端 上下键 返回上一个指令 tab键补齐

WinXP电脑常用运行指令使用汇总

  1.鼠标左键点击屏幕左下角开始,运行. 2.输入msconfig命令,点确定即可. 3.这条命令最大的用途就是删除电脑的启动项了,众所周知,电脑启动为什么很慢?因为启动时加载了很多的程序,想让电脑快一些吗?删除启动项吧! (小提示:把启动项前面的勾去掉,点确定即可) 如图: 4.此命令只有一个功能,调出Windows自带的计算器!当你想计算一些东西手头恰好没有计算器的时候,就直接调出它,是不是很方便? (小提示:点击计算器上的"查看"--"科学型"会有更多功能!

搜索引擎优化过程中常用的搜索指令

在搜索引擎优化过程中,我们经常用到的是在搜索引擎中输入某某符号来检查网站的收录.链接等等.但是搜索引擎在一开始就准备了很多检查的指令,只是大家很少用过,所以今天整理了搜索引擎优化过程中常用的搜索指令来帮助大家更加清晰的了解搜索引擎,了解网站. 一.双引号""和书名号<>指令--完全匹配搜索 在输入了含有双引号的关键词后,返回的结果是完全匹配了关键词"搜索引擎优化图片"文字的结果,而下面的图片则是包含关键词"搜索引擎优化图片"且可能是分

又一款MVVM组件 Vue基础语法和常用指令(1)_javascript技巧

前言:关于Vue框架,好几个月之前就听说过,了解一项新技术之后,总是处于观望状态,一直在犹豫要不要系统学习下.正好最近有点空,就去官网了解了下,看上去还不错的一个组件,就抽空研究了下.最近园子里vue也确实挺火,各种入门博文眼花缭乱,博主也不敢说写得多好,就当是个学习笔记,有兴趣的可以看看. 一.MVVM大比拼 关于MVVM,原来在介绍knockout.js的时候有过讲解,目前市面上比较火的MVVM框架也是一抓一大把,比如常见的有Knockout.js.Vue.js.React.Angularj