maven常用命令


一、maven常用命令:

1.mvn clean    清空產生的項目( target里)

2.mvn compile 編譯源代碼

3.mvn install    在本地repository中安裝jar(包含mvn compile,mvn package,然后上傳到本地倉庫)

4.mvn deploy   上傳到私服(包含mvn install,然后,上傳到私服)

5.mvn package     打包

6.mvn test           運行測試

7.mvn site     產生site

8.mvn test-compile   編譯測試代碼

9.mvn -Dtest package  只打包不測試

10.mvn  jar:jar    只打jar包

11.mvn  test -skipping compile -skipping test-compile  只測試而不編譯,也不測試編譯

12.mvn  deploy   

13.mvn  source.jar   源碼打包

 

二、把pom文件中配置的依賴jar包打進來,打成一個包:要用maven-assembly-plugin 這個插件,在pom文件加如下配置

 1 <build>
 2         <plugins>
 3             <plugin>
 4                 <artifactId>maven-compiler-plugin</artifactId>
 5                 <version>2.3.2</version>
 6                 <configuration>
 7                     <source>1.7</source>
 8                     <target>1.7</target>
 9                 </configuration>
10             </plugin>
11             <plugin>
12                 <artifactId>maven-assembly-plugin</artifactId>
13                 <configuration>
14                     <appendAssemblyId>false</appendAssemblyId>
15                     <descriptorRefs>
16                         <descriptorRef>jar-with-dependencies</descriptorRef>
17                     </descriptorRefs>
18                </configuration>
19                 <executions>
20                     <execution>
21                         <id>make-assembly</id>
22                         <phase>package</phase>
23                         <goals>
24                             <goal>assembly</goal>
25                         </goals>
26                     </execution>
27                 </executions>
28             </plugin>
29         </plugins>
30     </build>

 

二、而下面這種配置:在eclipse中,Run as ->Maven build-> install  生成的包,只有該項目自己,<dependencies>里引入的第三方jar並沒打進去;

但用package命令,生成項目本身一個jar,還生成一個*-jar-with-dependencies.jar,依賴的jar 都在這個*-jar-with-dependencies.jar包里,項目本身的包還是它自己

 1 <build>  
 2             <plugins>  
 3                 <plugin>
 4                     <artifactId>maven-compiler-plugin</artifactId>
 5                     <version>2.3.2</version>
 6                     <configuration>
 7                         <source>1.7</source>
 8                         <target>1.7</target>
 9                     </configuration>
10                 </plugin>
11                 <plugin>  
12                     <artifactId>maven-assembly-plugin</artifactId>  
13                     <configuration>  
14                         <descriptorRefs>  
15                             <descriptorRef>jar-with-dependencies</descriptorRef>  
16                         </descriptorRefs>  
17                     </configuration>  
18                 </plugin>  
19             </plugins>  
20         </build>

 

三、如果不想包含依賴的jar包,可以把<build>里面的代碼替換成如下code:

 1 <!-- 打包jar文件時,配置manifest文件,加入lib包的jar依賴 -->  
 2             <plugin>  
 3                 <groupId>org.apache.maven.plugins</groupId>  
 4                 <artifactId>maven-jar-plugin</artifactId>  
 5                 <configuration>  
 6                     <archive>  
 7                         <manifest>  
 8                             <addClasspath>true</addClasspath>  
 9                             <classpathPrefix>lib/</classpathPrefix>  
10                             <mainClass>com.xxx.uploadFile</mainClass>  
11                         </manifest>  
12                     </archive>  
13                 </configuration>  
14             </plugin>  
15             <!-- 拷貝依賴的jar包到lib目錄 -->  
16             <plugin>  
17                 <groupId>org.apache.maven.plugins</groupId>  
18                 <artifactId>maven-dependency-plugin</artifactId>  
19                 <executions>  
20                     <execution>  
21                         <id>copy</id>  
22                         <phase>package</phase>  
23                         <goals>  
24                             <goal>copy-dependencies</goal>  
25                         </goals>  
26                         <configuration>  
27                             <outputDirectory>  
28                                 ${project.build.directory}/lib  
29                             </outputDirectory>  
30                         </configuration>  
31                     </execution>  
32                 </executions>  
33             </plugin>

 

四、只包含部分依賴jar包

如果想只包含部分依賴jar包

比如說,想做一個工具jar包,依賴公共jar和自己本地jar包,本地jar包需要解壓成class打到jar包內,而依賴的公共jar包則不需要。

剔除公共jar包 可以用<scope>

<scope>的值的含義:
compile,缺省值,適用於所有階段,會隨着項目一起發布。 
provided,類似compile,期望JDK、容器或使用者會提供這個依賴。如servlet.jar。 
runtime,只在運行時使用,如JDBC驅動,適用運行和測試階段。 
test,只在測試時使用,用於編譯和運行測試代碼。不會隨項目發布。 
system,類似provided,需要顯式提供包含依賴的jar,Maven不會在Repository中查找它。

編譯的時候采用 compile

1 <dependency>
2      <groupId>log4j</groupId>
3      <artifactId>log4j</artifactId>
4      <version>1.2.17</version>
5      <scope>complie</scope>
6      <optional>true</optional>
7 </dependency>

在用package打包的時候,改成test,生成的jar包里就不會有該jar包的類了。

1 <dependency>
2      <groupId>log4j</groupId>
3      <artifactId>log4j</artifactId>
4      <version>1.2.17</version>
5      <scope>test</scope>
6      <optional>true</optional>
7 </dependency>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM