本文转载自http://shift-alt-ctrl.iteye.com/blog/1939783
mvn package -Dmaven.test.skip=true 打包并且跳过测试
-DskipTests,不执行测试用例,但编译测试用例类生成相应的class文件至target/test-classes下。
-Dmaven.test.skip=true,不执行测试用例,也不编译测试用例类。
一. 常用指令
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: 编译源文件
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>3.1</version>
- <configuration>
- <source>1.6</source>
- <target>1.6</target>
- </configuration>
- </plugin>
可以通过"mvn compiler:compiler"来编译,[参考]
2) resources: 打包时将resource文件拷贝到classpath下
- <resources>
- <resource>
- <directory>src/main/resources</directory>
- <!-- 部署jar时,将会排除exclude下的文件进入jar,在web项目中,通常将properties文件排除在jar之外,而是放在classes文件中(参见war插件) -->
- <excludes>
- <exclude>*.properties</exclude>
- </excludes>
- <filtering>true</filtering>
- </resource>
- </resources>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-resources-plugin</artifactId>
- <version>2.6</version>
- <configuration>
- <encoding>UTF-8</encoding>
- </configuration>
- </plugin>
3) jar: 将项目打包成jar,也可以是"可运行的java"程序
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-jar-plugin</artifactId>
- <configuration>
- <archive>
- <manifest>
- <!-- 是否将项目的classpath添加到manifest-->
- <addClasspath>true</addClasspath>
- <!-- 指定main方法 -->
- <mainClass>com.test.MainClass</mainClass>
- </manifest>
- </archive>
- </configuration>
- </plugin>
可以通过"mvn jar:jar"运行打包为jar文件,[参考]
4) war: 将项目打包为war
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-war-plugin</artifactId>
- <version>2.4</version>
- <configuration>
- <!-- 是否将classes文件部署成jar包 -->
- <archiveClasses>true</archiveClasses>
- <webResources>
- <resource>
- <!-- 相对pom.xml的目录 -->
- <directory>src/main/resources/</directory>
- <!-- 文件目标位置 -->
- <targetPath>WEB-INF/classes</targetPath>
- <includes>
- <include>*.xml</include>
- <include>*.properties</include>
- </includes>
- <!--
- <excludes>
- <exclude>**/image2</exclude>
- </excludes>
- -->
- </resource>
- </webResources>
- </configuration>
- </plugin>
可以通过"mvn war:war"来生成文件,[参考]
5) source: 生成source文件
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-source-plugin</artifactId>
- <version>2.2.1</version>
- <configuration>
- <!-- 相对当前的输出路径 ,默认在target下
- <outputDirectory>target/</outputDirectory>
- -->
- <!-- 生成的文件名称,默认为"<build>.<fileName>-source.jar"
- <finalName>tttt.jar</finalName>
- -->
- <attach>false</attach>
- </configuration>
- </plugin>
可以通过"mvn source:jar"等指令运行,可以通过追加"javadoc:javadoc"生成javadoc文件,[参考]
6) eclipse/IDEA:
可以通过"mvn eclipse:eclipse" 或者"mvn idea:idea"生成相应的工程,[参考]
三. 将项目发布到nexus上.
1) 在maven的setting.xml中新增服务
- <servers>
- <server>
- <id>nexus-releases</id>
- <username>admin</username>
- <password>admin123</password>
- </server>
- <server>
- <id>nexus-snapshots</id>
- <username>admin</username>
- <password>admin123</password>
- </server>
- </servers>
- <!-- 项目依赖包库 -->
- <profiles>
- <profile>
- <id>dev</id>
- <repositories>
- <repository>
- <id>nexus</id>
- <url>http://192.168.0.132:8080/nexus/content/groups/public/</url>
- <releases>
- <enabled>true</enabled>
- </releases>
- <snapshots>
- <enabled>true</enabled>
- </snapshots>
- </repository>
- </repositories>
- <pluginRepositories>
- <pluginRepository>
- <id>nexus</id>
- <url>http://192.168.0.132:8080/nexus/content/repositories/central/</url>
- <releases>
- <enabled>true</enabled>
- </releases>
- <snapshots>
- <enabled>true</enabled>
- </snapshots>
- </pluginRepository>
- </pluginRepositories>
- </profile>
- </profiles>
- <activeProfiles>
- <activeProfile>dev</activeProfile>
- </activeProfiles>
2) pom.xml文件中指定发布目标位置:
- <distributionManagement>
- <repository>
- <id>nexus-releases</id><!-- 和setting.xml对应 -->
- <url>http://192.168.0.132:8080/nexus/content/repositories/releases/</url>
- </repository>
- </distributionManagement>
使用"mvn source:jar deploy"即可;建议将开发过程中的jar发布到snapshot中,同时如果nexus设定了"Disable reploy"(不允许重复发布),将会导致同一个版本的项目不能被多次发布(400错误).
其他:
将jar包放进本地仓库
mvn install:install-file -Dfile=mars-0.1.0.jar -DgroupId=com.itlong -DartifactId=mars -Dversion=0.1.0 -Dpackaging=jar
相关推荐
本文将详细介绍Maven的一些常用命令、操作方法以及打包步骤,帮助开发者更好地理解和运用Maven。 一、Maven常用命令 1. 初始化项目结构: `mvn archetype:generate` - 这个命令用于创建一个新的Maven项目,根据...
Maven常用命令 mvn archetype:create :创建 Maven 项目 mvn compile :编译源代码 mvn test-compile :编译测试代码 mvn test : 运行应用程序中的单元测试 mvn site : 生成项目相关信息的网站 mvn clean :清除...
POM中包含了项目的基本信息、构建指令以及项目依赖关系。 在Maven中,jar包的管理依赖于Maven中央仓库。这个仓库包含了大量开源项目的jar包,开发者可以通过指定依赖项的坐标(groupId, artifactId, version)来...
Maven 使用 POM 文件来描述项目,POM 中包含了项目的属性、依赖、构建指令等信息。当运行 Maven 命令时,它会解析 POM 文件,并根据其中的配置执行相应的构建步骤,如编译源代码、运行测试、打包应用、部署等。Maven...
1. **项目对象模型(Project Object Model, POM)**:Maven基于POM来管理项目,POM是一个XML文件,包含了项目的基本信息、构建指令、依赖关系等。 2. **坐标(Coordinates)**:每个Maven项目都有唯一的坐标,由...
1. **项目对象模型 (POM)**: Maven的配置信息存储在POM.xml文件中,包含了项目的基本信息、构建指令、依赖库、插件和构建目标等。POM是Maven处理项目的基础。 2. **依赖管理**: Maven自动解决项目依赖关系,通过在...
1. **项目对象模型(POM)**:POM是Maven的核心,它是一个XML文件,包含了项目的基本信息、依赖、构建指令、插件配置等。 2. **依赖管理**:Maven能自动下载项目所需的库文件,并管理这些依赖关系,避免版本冲突。 3...
- POM是Maven的核心概念,它是项目的配置文件,描述了项目的基本信息(如名称、版本)、构建指令、依赖关系和其他元数据。 3. **依赖管理**: - Maven通过读取POM.xml中的依赖信息,自动下载并管理项目所需的库...
在`pom.xml`文件中,开发者可以定义项目的属性、依赖关系、构建目标、插件以及执行这些插件的指令。 3. **构建JAR包**: Maven提供了内置的目标来构建JAR包。最常用的是`package`目标,它会编译源代码,运行测试,...
4. **POM.xml**:每个Maven项目都有一个POM.xml文件,它是项目的元数据,包含了项目的基本信息、依赖管理、构建指令等。 5. **依赖管理**:在POM.xml中声明项目所需的依赖,Maven会自动下载这些依赖到本地仓库,...
`pom.xml`文件是Maven项目的灵魂,它包含了项目的元数据和构建指令。这篇博文主要讨论了`pom.xml`文件中的常用配置,以帮助开发者更好地理解和使用Maven。 首先,`<project>`是`pom.xml`的根元素,它包含了关于项目...
### Maven的常用命令 - `mvn clean`:清理项目生成的临时文件和目标目录。 - `mvn compile`:编译项目的源代码。 - `mvn test`:运行项目的测试。 - `mvn package`:打包项目,如生成JAR或WAR文件。 - `mvn install`...
在Maven 3.5.4中,已经包含了众多常用的插件。 4. **仓库系统**:Maven默认使用Maven Central Repository,这是一个全球性的公共资源库,包含了大量开源Java项目的构件。此外,开发者还可以自定义私有仓库,方便...
在实际开发中,Maven的依赖管理功能不仅限于JAR文件,还涵盖了POM(Project Object Model)文件,它是Maven配置的核心,包含项目的基本信息、依赖、构建指令等。POM文件的继承和聚合特性使得大型项目管理变得简单,...
- **项目对象模型(POM)**:Maven的中心概念是POM,它是一个XML文件,包含了项目的基本信息、构建指令、依赖关系、插件配置等。POM使得项目构建过程可重用和标准化。 - **依赖管理**:Maven通过中央仓库管理项目的...
### Maven 的常用命令 - `mvn clean`:清理目标目录,删除所有构建产物。 - `mvn compile`:编译项目源代码。 - `mvn test`:运行项目的所有测试。 - `mvn package`:打包项目,生成最终的可部署文件(如JAR或WAR)...
Maven通过XML格式的POM文件来描述项目,这个文件包含了构建指令、项目依赖、插件配置等信息。 ** Maven的核心功能 ** 1. **依赖管理**:Maven自动管理项目所需的第三方库,通过Maven仓库(如Central Repository)...
Maven的中心组件是POM,这是一个XML文件,包含了项目的基本信息、构建指令和依赖关系。通过POM,Maven知道如何构建项目,从哪里获取依赖,以及如何执行测试和打包。 2. **仓库**: Maven依赖于本地仓库和远程仓库...
2. **构建工具**:Maven支持编译、测试、打包、部署等一系列构建过程,只需简单的命令行指令即可完成。 3. **项目信息管理**:POM文件包含了项目的基本信息,如项目名称、版本、作者、描述等,以及项目依赖、插件和...
1. POM:Project Object Model,是Maven的核心,它定义了项目的基本信息、构建指令、依赖管理等。 2. 仓库:Maven使用仓库来存储依赖的JAR文件,包括本地仓库(默认为用户主目录下的.m2/repository)、中央仓库(由...