本文转载自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常用命令 mvn archetype:create :创建 Maven 项目 mvn compile :编译源代码 mvn test-compile :编译测试代码 mvn test : 运行应用程序中的单元测试 mvn site : 生成项目相关信息的网站 mvn clean :清除...
maven的安装、配置、常用指令,生命周期、私服架设、远程仓库、本地仓库、中央仓库的区别,以及构建工程示例等内容
maven常用指令大全Maven常用命令: 1. 创建Maven的普通java项目: mvn archetype:create -DgroupId=packageName -DartifactId=projectName 2. 创建Maven的Web项目: mvn archetype:create ...
该文档全面为技术干货,图文式介绍了maven的安装、配置、常用指令,生命周期、私服架设、远程仓库、本地仓库、中央仓库的区别,以及构建工程示例等内容
常用的应用场景是项目需要部署到客户机器上,一定程度上防止代码泄露。 ProGuard 是一个混淆代码的开源项目,它的主要作用是混淆代码,ProGuard 包括以下 4 个功能: 压缩(Shrink):检测并移除代码中无用的类、字段...
这是我自己在学习过程中,整理的关于构建工具maven的知识点,包括基础概念、生命周期、聚合和继承、常用插件指令以及在项目中的使用。作为一个记录,同事也希望对正在学习这块的小伙伴有帮助吧,顺便赚点积分
这几天有点忙,没有更新,今天给各位小伙伴带来一篇关于...#例:docker cp maven:/root/app/maven.tar.gz . docker ps -a –no-trunc # –no-trunc显示完整commod指令 volume (-v) #映射宿主机目录(可共享),保证
如果你是一名纯粹的 Java+Maven 开发者 该项目是一个很好的学习模板。 本项目中的一些查询数据文档: 如果你有什么疑问或者讨论方案,可以选择在在进行 本项目文档地址: 如果想直接使用QQ机器人请添加QQ:209135855 ...
(主要是 Maven 指令。) 1. 关于 Freamon 项目是一个简单的 IRC 聊天机器人,它非常明确地不尝试实际进行明智的对话,而是成为一个有点傻的参与者。 Freamon 通过不断观察正在进行的对话并记住常用短语来学习他...
{8.1}线程的常用属性与方法}{121}{section.8.1} {8.2}后台线程}{123}{section.8.2} {8.3}创建线程的两种方法}{123}{section.8.3} {8.4}Runnable}{123}{section.8.4} {8.5}Sleep阻塞与打断唤醒}{124}{section....
│ 第33节:Nginx常用核心模块指令.avi │ 第34节:Nginx的Http模块部分的指令.avi │ 第35节:Nginx的Location区段.avi │ 第36节:Nginx的反向代理模块.avi │ 第37节:反向代理和动静分离的实现.avi │ 第38节:...