2015-02-08 80 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