• <nav id="wkkge"><strong id="wkkge"></strong></nav>
  • <menu id="wkkge"></menu>
  • Maven教程
    Maven常用命令應用
    Maven修改倉庫地址
    使用Eclipse創建Maven項目
    Maven插件
    Maven打包
    Maven項目導入及轉換

    Maven常用命令

     

     

    ? mvn archetype:generate 創建Maven項目


    ? mvn compile 編譯源代碼


    ? mvn deploy 發布項目


    ? mvn test-compile 編譯測試源代碼


    ? mvn test 運行應用程序中的單元測試


    ? mvn site 生成項目相關信息的網站


    ? mvn clean 清除項目目錄中的生成結果

     

    ? mvn package 根據項目生成的jar


    ? mvn install 在本地Repository中安裝jar


    ? mvn eclipse:eclipse 生成eclipse項目文件


    ? mvnjetty:run 啟動jetty服務


    ? mvntomcat:run 啟動tomcat服務


    ? mvn clean package -Dmaven.test.skip=true:清除以前的包后重新打包,跳過測試類

     

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

     

    <build>
            <plugins>
                <plugin>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>2.3.2</version>
                    <configuration>
                        <source>1.7</source>
                        <target>1.7</target>
                    </configuration>
                </plugin>
                <plugin>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <configuration>
                        <appendAssemblyId>false</appendAssemblyId>
                        <descriptorRefs>
                            <descriptorRef>jar-with-dependencies</descriptorRef>
                        </descriptorRefs>
                   </configuration>
                    <executions>
                        <execution>
                            <id>make-assembly</id>
                            <phase>package</phase>
                            <goals>
                                <goal>assembly</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>

     

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

     

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

     

    <build>
                <plugins>
                    <plugin>
                        <artifactId>maven-compiler-plugin</artifactId>
                        <version>2.3.2</version>
                        <configuration>
                            <source>1.7</source>
                            <target>1.7</target>
                        </configuration>
                    </plugin>
                    <plugin>
                        <artifactId>maven-assembly-plugin</artifactId>
                        <configuration>
                            <descriptorRefs>
                                <descriptorRef>jar-with-dependencies</descriptorRef>
                            </descriptorRefs>
                        </configuration>
                    </plugin>
                </plugins>
            </build>

     

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

     

    <!-- 打包jar文件時,配置manifest文件,加入lib包的jar依賴 -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <configuration>
                        <archive>
                            <manifest>
                                <addClasspath>true</addClasspath>
                                <classpathPrefix>lib/</classpathPrefix>
                                <mainClass>com.xxx.uploadFile</mainClass>
                            </manifest>
                        </archive>
                    </configuration>
                </plugin>
                <!-- 拷貝依賴的jar包到lib目錄 -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-dependency-plugin</artifactId>
                    <executions>
                        <execution>
                            <id>copy</id>
                            <phase>package</phase>
                            <goals>
                                <goal>copy-dependencies</goal>
                            </goals>
                            <configuration>
                                <outputDirectory>
                                    ${project.build.directory}/lib
                                </outputDirectory>
                            </configuration>
                        </execution>
                    </executions>
                </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

     

    <dependency>
         <groupId>log4j</groupId>
         <artifactId>log4j</artifactId>
         <version>1.2.17</version>
         <scope>complie</scope>
         <optional>true</optional>
    </dependency>

     

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

     

    <dependency>
         <groupId>log4j</groupId>
         <artifactId>log4j</artifactId>
         <version>1.2.17</version>
         <scope>test</scope>
         <optional>true</optional>
    </dependency>

     

     

    全部教程
  • <nav id="wkkge"><strong id="wkkge"></strong></nav>
  • <menu id="wkkge"></menu>
  • 面对面棋牌游戏