java - 如何使用 maven 为特定文件夹创建额外的 JAR

标签 java maven jar

我有一个maven项目,我需要生成三个单独的jar

  • 一个用于主应用程序(默认)
  • 一个用于源代码 (maven-source-plugin)
  • 还有一个用于我的应用文档,位于 target/docs

问题:如何创建仅包含 target/docs 文件夹的 jar?

最佳答案

您可以将以下内容添加到您的 maven pom.xml 文件的 build/plugins 部分:

<plugin>
    <artifactId>maven-jar-plugin</artifactId>
    <version>3.0.1</version>
    <executions>
        <execution>
            <configuration>
                <classifier>docs</classifier>
                <classesDirectory>${project.build.directory}/docs</classesDirectory>
                <includes>**/*</includes>
            </configuration>
            <id>pack-docs</id>
            <phase>package</phase>
            <goals>
                <goal>jar</goal>
            </goals>
        </execution>
    </executions>
</plugin>

这基本上是:

  • 使用maven-jar-pluginjar目标是为该项目打包新的 Artifact
  • 将其添加(或 attaching )作为分类器(将 docs 后缀附加到项目 Artifact 的常规约定中,例如 artifactId-version.jar)
  • 使用标准 ${project.build.directory} 属性而不是 targettarget\docs 设置为文件源(这是它的默认值)

正在运行

mvn clean package

然后您将作为输出的一部分

  • 通常创建的 jar 文件,例如sample-project-1.0.0-SNAPSHOT.jar
  • 新的 docs 文件,例如sample-project-1.0.0-SNAPSHOT-docs.jar

关于java - 如何使用 maven 为特定文件夹创建额外的 JAR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37790330/

相关文章:

java - Android fragment 在 Activity 重新启动时未重新创建

java.lang.IllegalStateException : FragmentManager is already executing transactions?

eclipse - 使用 Maven 时,是否应该将 Eclipse 设置和 .project 文件放入 SCM?

spring - Maven Multi Module坚持在业务模块中复制datasource application.properties

java - 运行jar应用程序后自动打开命令提示符

java - Java 中 jar 文件和库的区别

java - 为 Maven 存储库创建 jar,如何?

java - 无法使用 Android 从 Google Cloud Storage url 下载图像

java - 如何从 Qt 在 Android 客户端代码中调用 Google-Cloud-Messaging API?

java - 如何在不重新构建应用程序的情况下重新部署到tomcat