maven打包时,同时打包源码 Build a source-JAR from the current project.

本文介绍了Maven源代码打包插件的使用方法,包括如何使用不同目标打包main目录和test目录的代码,并通过配置将插件目标绑定到生命周期阶段以自动化打包过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



Plugin: http://maven.apache.org/plugins/maven-source-plugin/

The Source Plugin has five goals:

  • source:aggregate aggregrates sources for all modules in an aggregator project.
  • source:jar is used to bundle the main sources of the project into a jar archive.
  • source:test-jar on the other hand, is used to bundle the test sources of the project into a jar archive.
  • source:jar-no-fork is similar to jar but does not fork the build lifecycle.
  • source:test-jar-no-fork is similar to test-jar but does not fork the build lifecycle.

1. 打包 main 目录代码到 jar 归档文件

mvn source:jar

2. 打包 test 目录代码到 jar 归档文件

mvn source:test-jar


3. 如果不想每次都传入上面的参数,可以将插件目标绑定到mvn生命周期的阶段,

将maven-source-plugin的jar-no-fork目标绑定到default生命周期的verify阶段,

以后执行mvn install命令时,在verify之后install之前会自动打包源代码,
生成somenamexxx-1.0.0-sources.jar文件


<project>
  ...
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-source-plugin</artifactId>
        <version>2.4</version>
        <executions>
          <execution>
            <id>attach-sources</id>
            <phase>verify</phase><!--  要绑定到的生命周期的阶段 在verify之后,install之前执行下面指定的goal -->
            <goals>
              <goal>jar-no-fork</goal><!-- 类似执行mvn source:jar -->
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
  ...
</project>


mvn compile [INFO] Scanning for projects... [INFO] [INFO] ----------------< org.apache.zookeeper:zookeeper-jute >----------------- [INFO] Building Apache ZooKeeper - Jute 3.10.0-SNAPSHOT [INFO] --------------------------------[ jar ]--------------------------------- [INFO] [INFO] --- mavanagaiata:0.9.4:commit (find-current-git-revision) @ zookeeper-jute --- [INFO] [INFO] --- maven-antrun-plugin:1.8:run (set-hostname-property) @ zookeeper-jute --- [INFO] Executing tasks main: [INFO] Executed tasks [INFO] [INFO] --- maven-enforcer-plugin:3.0.0-M3:enforce (enforce-maven-version) @ zookeeper-jute --- [INFO] [INFO] --- maven-enforcer-plugin:3.0.0-M3:enforce (banned-commons-lang) @ zookeeper-jute --- [INFO] [INFO] --- maven-enforcer-plugin:3.0.0-M3:enforce (banned-commons-lang3) @ zookeeper-jute --- [INFO] [INFO] --- maven-enforcer-plugin:3.0.0-M3:enforce (banned-json-simple) @ zookeeper-jute --- [INFO] [INFO] --- javacc-maven-plugin:2.6:javacc (javacc) @ zookeeper-jute --- [INFO] Skipping - all parsers are up to date [INFO] [INFO] --- maven-compiler-plugin:3.8.1:compile (pre-compile-jute) @ zookeeper-jute --- [INFO] Changes detected - recompiling the module! [INFO] Compiling 34 source files to /root/soft/zookeeper/zookeeper-jute/target/classes [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 1.949 s [INFO] Finished at: 2025-06-15T16:32:32Z [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (pre-compile-jute) on project zookeeper-jute: Fatal error compiling: error: release version 8 not supported -> [Help 1] [ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. [ERROR] Re-run Maven using the -X switch to enable full debug logging. [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
最新发布
06-17
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值