如何使IntelliJ尊重Maven Kotlin插件输出目录?

时间:2015-02-08 00:36:04

标签: maven intellij-idea kotlin intellij-14

我正在编写Kotlin并编译为JavaScript。我也有一些HTML / CSS资源。我有一个Maven项目设置,它将我的HTML资源复制到构建目录,kotlin-maven-plugin将其outputFile位置设置为输出目录(${project.build.directory}/js/${project.artifactId}.js)的子目录。使用maven构建时,其行为完全符合预期,我的输出目录包含js文件夹中的已编译JavaScript文件以及相应位置的HTML / CSS文件。

但是,当我将项目导入IntelliJ时,它并不尊重pom.xml中设置的outputFile位置,而是将生成的JavScript文件放入target\classes

我可以在导入后通过进入Project Structure > Project Settings > Modules > Paths > Compiler Output > Output Path并将其更改为target\js来解决此问题,但我希望能够以不需要此步骤的方式设置pom.xml。 / p>

在相关的说明中,为什么设置输出路径不会导致我的HTML / CSS文件被放入target\jsresource副本似乎没有遵守输出路径。

编辑:这是pom.xml excert:

<plugin>
    <artifactId>kotlin-maven-plugin</artifactId>
    <groupId>org.jetbrains.kotlin</groupId>
    <version>${kotlin.version}</version>
    <executions>
        <execution>
            <id>js</id>
            <goals>
                <goal>js</goal>
            </goals>
            <configuration>
                <outputFile>${project.build.directory}/js/${project.artifactId}.js</outputFile>
            </configuration>
        </execution>
    </executions>
</plugin>

1 个答案:

答案 0 :(得分:1)

这看起来已经解决,或者还有其他选择。从评论中提到的问题到问题(https://youtrack.jetbrains.com/issue/KT-6749):

  

在IntelliJ中导入maven项目时,如果选择“使用Maven输出目录”,则输出路径将设置为$ {project.build.outputDirectory},默认情况下为$ {project.build.directory } / classes(有关详细信息,请参阅http://maven.apache.org/pom.html。)

     

以下内容应该有效:

<build>
    <outputDirectory>${project.build.directory}/js</outputDirectory>
    ...
</build>
  

目前,参数outputFilekotlin-maven-plugin, goal:js)的默认值为${project.build.directory}/js/${project.artifactId}.js

     

似乎应该更改为${project.build.outputDirectory}/${project.artifactId}.js(提交https://github.com/JetBrains/kotlin/commit/0b35989367291e88568567a293ed7224f809d605