常用 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]

相关文章
|
数据库
【latex】在Overleaf的IEEE会议模板中,快速插入参考文献
【latex】在Overleaf的IEEE会议模板中,快速插入参考文献
3341 1
|
存储 缓存 NoSQL
MySQL索引详解(一文搞懂)
索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。
49794 17
MySQL索引详解(一文搞懂)
|
Java 应用服务中间件 Maven
Springboot项目将jar包修改为war包操作步骤
Springboot项目将jar包修改为war包操作步骤 文章目录 Springboot项目将jar包修改为war包操作步骤 1.修改jar为war包形式 2.去除Spring Boot内置Tomcat 3.增加Tomcat启动插件 4.使用maven编译程序
969 0
Springboot项目将jar包修改为war包操作步骤
|
10月前
|
机器学习/深度学习 人工智能 文字识别
Zerox:AI驱动的万能OCR工具,精准识别复杂布局并输出Markdown格式,支持PDF、DOCX、图片等多种文件格式
Zerox 是一款开源的本地化高精度OCR工具,基于GPT-4o-mini模型,支持PDF、DOCX、图片等多种格式文件,能够零样本识别复杂布局文档,输出Markdown格式结果。
974 4
Zerox:AI驱动的万能OCR工具,精准识别复杂布局并输出Markdown格式,支持PDF、DOCX、图片等多种文件格式
|
安全 Java Linux
docker阿里云镜像加速
我们都知道因为某些原因我们访问外网都是比较慢的,比如我们使用maven下载依赖时是一个道理,同样的使用docker从docker.hub上下载镜像也是比较慢的。针对这种访问官网比较慢的情况有两种方案,第一种就是使用国内的仓库,第二种就是使用一个加速器。这里我们配置docker的镜像加速从来来实现提速。
14049 1
docker阿里云镜像加速
|
Web App开发 存储 JavaScript
Chrome插件实现问题之Manifest V2切换MV3会带来什么问题,如何解决
Chrome插件实现问题之Manifest V2切换MV3会带来什么问题,如何解决
|
人工智能 IDE 开发工具
给IntelliJ IDEA添加AI功能
这篇文章讲解了如何在IntelliJ IDEA中安装和使用阿里云开发的通义灵码插件,以增强IDE的人工智能辅助编程功能。
4197 0
给IntelliJ IDEA添加AI功能
本文将介绍在Python解释器、PyCharm和Anaconda中如何更换pip镜像源。
本文将介绍在Python解释器、PyCharm和Anaconda中如何更换pip镜像源。
|
机器人 索引 SEO
如何让谷歌收录自己的网站?谷歌多久收录我的网站?
你要相信,你自己的网站在谷歌没有流量,没有排名,不是谷歌出了问题,而是你的认知出了问题。
1501 0
如何让谷歌收录自己的网站?谷歌多久收录我的网站?