2015-02-08 104 views
0

我在写Kotlin并编译成JavaScript。我也有一些HTML/CSS资源。我有一个Maven项目设置,将我的HTML资源复制到构建目录,并且kotlin-maven-plugin将其outputFile位置设置为输出目录(${project.build.directory}/js/${project.artifactId}.js)的子目录。使用maven构建时,其行为与预期完全相同,我的输出目录在js文件夹中包含我编译的JavaScript文件,在适当的位置包含我的HTML/CSS文件。如何让IntelliJ尊重Maven Kotlin插件的输出目录?

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

我可以通过进入Project Structure > Project Settings > Modules > Paths > Compiler Output > Output Path并将其更改为target\js来解决此问题,但我希望能够以这种方式设置pom.xml,以便不必执行此步骤。

在相关说明中,为什么设置输出路径不会导致我的HTML/CSS文件丢失到target\js?看起来输出路径不受resource副本的尊重。

编辑:这是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> 
+2

如果反对票,请注明与问题是什么问题,这样我就可以改善。 – 2015-02-08 02:27:19

+0

我没有downvote,但也许你可能会从你的POM中添加相关的'kotlin-maven-plugin'片段。 – 2015-02-08 04:44:43

+1

看起来像bug,请用简单的例子在[tracker](https://youtrack.jetbrains.com/newIssue?project=KT)中创建一个关于它的问题。谢谢! – bashor 2015-02-08 12:15:39

回答

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