maven-plugin

一、maven常用的命令:

  mvn clean install  -Dmaven.test.skip=true  -rf :spring-boot-cli

   mvn clean install -Dmaven.test.skip=true -Dcheckstyle.skip=true

mvn help:describe -Dplugin=插件名称 -Ddetail     例如:“mvn help:describe -Dplugin=jar -Ddetail” 展示的就是maven-jar-plugin插件的使用详情

mvn dependency:tree

mvn help:effective-pom

mvn package  -X   大写的X用于调试

二、org.codehaus.gmaven:gmaven-plugin插件的使用,这插件主要是关于groovy的:

三、maven-compiler-plugin

java编译插件:

参数详解:

configuration-->source  指定要被编译的java源文件的版本

configuration-->target  指定将要编译出来的java的class文件的版本

configuration-->skip  当这个值为true时,不编译测试代码

configuration-->compilerArgs-->compilerArg  -verbose  输出编译器正在执行的操作的信息

                                                                        -Xlint:unchecked 启用未经检查或不安全操作的警告@SuppressWarning

                                                                        -Xlink:deprecation 启用使用已过时的类或方法的警告@SuppressWarning

                                                                        -bootclasspath  ${env.JAVA_HOME}/jre/lib/rt.jar指定编译源文件时所用的引导类

                                                                        -extdirs ${env.JAVA_HOME}/jre/lib/ext 指定编译源文件时所用的扩展类

当然为什么要指定-bootclasspath和-extdirs呢,最主要原因就是交叉编译:

javac本身就是java应用程序,所以需要引导类和扩展类

目标程序也是java应用程序,所以也需要引导类和扩展类

默认情况下目标程序需要的引导类和扩展类就是javac的引导类和扩展类,但是如果目标程序需要的引导类和扩展类和javac的不一样时,

目标程序的引导类的扩展类就需要用bootclasspath和extdirs指定

 

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                    <encoding>UTF-8</encoding>
                    <compilerArgs> 
                        <arg>-verbose</arg>
                        <arg>-Xlint:unchecked</arg>
                        <arg>-Xlint:deprecation</arg>
                        <arg>-bootclasspath</arg>
                        <arg>${env.JAVA_HOME}/jre/lib/rt.jar</arg>
                    </compilerArgs> 
                </configuration>
            </plugin>

 四、spring源码编译

编译kotlin

            <plugin>
                <artifactId>kotlin-maven-plugin</artifactId>
                <groupId>org.jetbrains.kotlin</groupId>
                <version>1.3.0</version>
                <configuration>
                    <jvmTarget>1.8</jvmTarget>
                </configuration>
                <executions>
                    <execution>
                        <id>compile</id>
                        <phase>compile</phase>
                        <goals>
                            <goal>compile</goal>
                        </goals>
                        <configuration>
                            <sourceDirs>
                                <sourceDir>${project.basedir}/src/main/kotlin</sourceDir>
                            </sourceDirs>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

aspectj编译

            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>aspectj-maven-plugin</artifactId>
                <version>1.8</version>
                <executions>
                    <execution>
                        <configuration>
                            <complianceLevel>1.8</complianceLevel>
                            <target>1.8</target>
                            <source>1.8</source>
                        </configuration>
                        <goals>
                            <goal>compile</goal>
                        </goals>
                        <phase>process-resources</phase>
                    </execution>
                </executions>
                <dependencies>
                    <dependency>
                        <groupId>org.aspectj</groupId>
                        <artifactId>aspectjrt</artifactId>
                        <version>1.9.5</version>
                    </dependency>
                    <dependency>
                        <groupId>org.aspectj</groupId>
                        <artifactId>aspectjtools</artifactId>
                        <version>1.9.5</version>
                    </dependency>
                </dependencies>
            </plugin>

groovy与java混合编译

            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <compilerId>groovy-eclipse-compiler</compilerId>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>org.codehaus.groovy</groupId>
                        <artifactId>groovy-eclipse-compiler</artifactId>
                        <version>2.9.2-01</version>
                    </dependency>
                    <dependency>
                        <groupId>org.codehaus.plexus</groupId>
                        <artifactId>plexus-compiler-api</artifactId>
                        <version>2.8.1</version>
                    </dependency>
                    <dependency>
                        <groupId>org.codehaus.groovy</groupId>
                        <artifactId>groovy-eclipse-batch</artifactId>
                        <version>2.4.3-01</version>
                    </dependency>
                </dependencies>
            </plugin>

编译spring-context-indexer的工程项目

            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <compilerArgument>-proc:none</compilerArgument>
                </configuration>
            </plugin>

 

posted @ 2018-12-18 14:47  海平面下的我们  阅读(389)  评论(0编辑  收藏  举报