• 常用 Maven 插件总结 邓维


    常用 Maven 插件总结

    1、maven-source-plugin 提供项目自动将源码打包并发布的功能,在需要发布源码项目的pom.xml文件中添加如下代码即可执行mvn  install,maven会自动将source install到repository 。 … 执行mvn source:jar,单独打包源码

    <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-source-plugin</artifactId>
                    <version>2.2.1</version>
                    <!-- 绑定source插件到Maven的生命周期,并在生命周期后执行绑定的source的goal -->
                    <executions>
                        <execution>
                            <id>attach-sources</id>
                            <!-- 绑定source插件到Maven的生命周期 -->
                            <phase>package</phase>
                            <goals>
                            <!--在生命周期后执行绑定的source插件的goals -->
                                <goal>jar-no-fork</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>

    2、maven-compiler-plugin  编译Java源码,一般只需设置编译的jdk版本。

    <plugin>  
        <groupId>org.apache.maven.plugins</groupId>  
        <artifactId>maven-compiler-plugin</artifactId>  
        <configuration>  
            <source>1.8</source>  
            <target>1.8</target>  
            <encoding>UTF-8</encoding>  
        </configuration>  
    </plugin> 
    • source: 源代码编译版本;
    • target: 目标平台编译版本;
    • encoding: 字符集编码。

    3、spring-boot-maven-plugin 插件后,当运行maven打包的命令,项目会被打包成一个可以直接运行的jar包,使用"java -jar"可以直接运行。其中xxx-0.0.1-SNAPSHOT.jar.original文件,用户可将.original后缀去掉便可得到用户自己编写的项目包。而xxx-0.0.1-SNAPSHOT.jar文件往往比上面那个文件要大的多,其实其内部已经将用户编写的项目所相关的依赖都打进去了。

    <plugin>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-maven-plugin</artifactId>
         <version>2.0.5.RELEASE</version>
         <configuration>
          <mainClass>com.xx.xx</mainClass>
         </configuration>
         <executions>
          <execution>
          <goals>
            <goal>repackage</goal>
          </goals>
          </execution>
         </executions>
    </plugin>

    问题,打包后是直接可运行的jar, 其他的项目无法直接依赖可运行的jar,解决方案:

     <plugins>
          <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>repackage</id>
                <configuration>
                  <classifier>exec</classifier>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>

    查看包的输出目录,果真有两个相似名称的包,一个是[name]-[version].jar,另一个是[name]-[version]-exec.jar。解压对比了这两个jar,发现名称含有-exec为可运行包,而另一个为普通包(不可通过 java -jar运行)。

     

  • 相关阅读:
    Git 常用命令整理
    用myeclipse打jar包,使其包含依赖jar包的指向
    解决 spring mvc3.1下post json出现HTTP Status 400 The request sent by the client was syntactically incorrect
    springMVC 返回类型选择 以及 SpringMVC中model,modelMap.request,session取值顺序
    WIN8下git报错解决,fatal: Not a git repository (or any of the parent directories): .git
    Modernizr 用法
    SPRING MVC 的请求参数获取的几种方法
    spring mvc 缓存
    Spring+SpringMVC+Log4J
    Log4j使用总结
  • 原文地址:https://www.cnblogs.com/dw3306/p/15901864.html
Copyright © 2020-2023  润新知