常用 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运行)。

 

 

 

posted @ 2022-02-16 18:19  邓维-java  阅读(833)  评论(0编辑  收藏  举报