【问题标题】:maven-source-plugin not work for kotlinmaven-source-plugin 不适用于 kotlin
【发布时间】:2017-04-07 10:32:14
【问题描述】:

我正在尝试使用 maven-source-plugin 为我的 kotlin 项目创建 source.jar,但 maven-source-plugin 似乎不适用于 kotlin 项目。

当我运行“mvn source:jar”时,输出消息总是说:

[INFO] No sources in project. Archive not created.

这是我项目的pom文件中的maven-source-plugin配置:

    <build>
    <plugins>

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <version>2.2.1</version>
            <executions>
                <execution>
                    <id>attach-sources</id>
                    <phase>package</phase>
                    <goals>
                        <goal>jar</goal>
                    </goals>
                    <configuration>
                        <attach>true</attach>
                        <includes>
         <!-- i am trying to specify the include dir manually, but not work -->                               
                         <include>${project.basedir}/src/main/kotlin/*</include>
                        </includes>
                        <forceCreation>true</forceCreation>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

我的问题是:如何使用 maven-source-plugin 附加 kotlin 源文件?

谢谢~~

【问题讨论】:

    标签: kotlin maven-source-plugin


    【解决方案1】:

    当您的项目混合使用 Java 和 Kotlin(即多个源代码根)时,我发现使用 build-helper-maven-plugin 可以很好地确保 Java 和 Kotlin 源代码都包含在构建的源代码工件中。

    <plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>build-helper-maven-plugin</artifactId>
      <version>3.0.0</version>
    
      <executions>
        <execution>
          <phase>generate-sources</phase>
          <goals>
            <goal>add-source</goal>
          </goals>
          <configuration>
            <sources>
              <source>src/main/kotlin</source>
            </sources>
          </configuration>
        </execution>
      </executions>
    </plugin>
    

    【讨论】:

    • 感谢 Alex,我的项目中只有 kotlin 代码。当项目中同时存在 java 和 kotlin 文件时,我会尝试您的建议。谢谢
    • kotlin-maven-plugin 插件可能是另一种选择,请检查:stackoverflow.com/questions/29330311
    【解决方案2】:

    默认情况下,maven 期望源位于src/main/java 目录中。如果使用非默认目录,则必须在 build 元素中指定它们:

    <build>
        <sourceDirectory>src/main/kotlin</sourceDirectory>
        <testSourceDirectory>src/test/kotlin</testSourceDirectory>
    </build>
    

    【讨论】:

    • @llya,谢谢,你是对的。添加 后,maven-source-plugin 生成了 source.jar 。
    • 很遗憾,如果您的项目同时具有 Java 和 Kotlin 源代码根,这样做会导致您的源工件仅包含 Kotlin 源代码。
    猜你喜欢
    • 2011-05-08
    • 2019-04-11
    • 2012-04-09
    • 2016-06-05
    • 1970-01-01
    • 2016-01-22
    • 2016-08-13
    • 1970-01-01
    • 2018-06-16
    相关资源
    最近更新 更多