繁体   English   中英

Maven:使用jar-with-dependencies分发源代码

[英]Maven: Distribute source code with with jar-with-dependencies

我正在使用Maven程序集插件将我的Java项目的二进制文件打包成一个胖jar(带有jar-with-dependencies描述符)。 这非常有效。

问题 :如何在编译的类文件旁边包含项目的源文件? 我试着查看Maven文档以了解如何执行此操作但找不到任何内容。

谢谢!

我的pom.xml看起来像这样:

<project>
...
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <configuration>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                    <finalName>${pom.artifactId}-${pom.version}</finalName>
                    <appendAssemblyId>false</appendAssemblyId>
                    <outputDirectory>${project.basedir}/bin/</outputDirectory>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

最简单的解决方案是使用预定义的描述符src,或者使用预定义的描述符项目可能更好:

  <descriptorRefs>
    <descriptorRef>jar-with-dependencies</descriptorRef>
    <descriptorRef>src</descriptorRef>
  </descriptorRefs>

或者其他选择是这样的:

  <descriptorRefs>
    <descriptorRef>jar-with-dependencies</descriptorRef>
    <descriptorRef>project</descriptorRef>
  </descriptorRefs>

您是否选择将二进制文件和源代码作为胖罐分发? 通常,二进制文件和源文件一起分发,但作为单独的jar文件。 Maven Central上的许多项目都在使用这种方法,而Nexus和Artifactory等存储库也支持这种方法。 如果您选择此选项, maven-source-plugin就是您的朋友。 文档

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-source-plugin</artifactId>
  <executions>
    <execution>
      <id>attach-sources</id>
      <goals>
        <goal>jar</goal>
      </goals>
    </execution>
  </executions>
</plugin>

然后执行mvn source:jar 有关配置选项,请参见网页。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM