如何:Maven项目在Eclipse中构建JavaScript

san*_*thi 5 javascript eclipse maven

如何配置我的pom以使文件夹充当JavaScript构建路径?

我想让开发人员将项目导入eclipse,并在eclipse构建路径中自动拥有JavaScript根文件夹,以便自动完成和其他JavaScript支持工作.

jef*_*t_b 6

这是我做的,似乎工作正常.我正在使用Eclipse Juno SR2(面向Web开发人员的Java EE)和Maven 3.0.5.(我不是Eclipse或Maven的专家,所以我确信有更优雅的方式来做这件事.请让我知道!)

根据Maven约定,我们希望有一个如下所示的项目结构:

- src
 +-- main
   +-- java
   +-- js
   +-- webapp
     +--  WEB-INF
 +-- test
   +-- java
   +-- js
Run Code Online (Sandbox Code Playgroud)

然后我们希望使用以下结构部署Web应用程序:

- /
 +-- js
 +-- WEB-INF
   +-- classes
Run Code Online (Sandbox Code Playgroud)

Maven pom.xml的关键部分在maven-war-plugin中,它通过src/main/js文件进行复制:

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.3</version>
            <configuration>
                <archiveClasses>true</archiveClasses>
                <webResources>
                    <!-- in order to interpolate version from pom into appengine-web.xml -->
                    <resource>
                        <directory>${basedir}/src/main/webapp/WEB-INF</directory>
                        <filtering>true</filtering>
                        <targetPath>WEB-INF</targetPath>
                    </resource>
                    <resource>
                        <directory>${basedir}/src/main/js</directory>
                        <filtering>true</filtering>
                        <targetPath>js</targetPath>
                    </resource>                        
                </webResources>
            </configuration>
        </plugin>
Run Code Online (Sandbox Code Playgroud)

(我现在正在为我的项目使用Google App Engine,因此appengine-maven-plugin会复制我的java代码和其他资源.)有了这个,你应该能够使用Maven来构建你的项目.还有其他可用的Maven javascript插件,用于测试和依赖等,但我认为这是基本功能.

在Eclipse方面,有两件事:

  • 确保使用已激活JavaScript Project Facet.
  • 在项目属性 - > JavaScript - >包含路径 - >源选项卡下,单击"添加文件夹"并选择"src/main/js".然后,您可以删除默认路径.
  • 在项目属性 - >部署程序集下,添加/ src/main/js文件夹,并适当设置部署路径(从上面的结构,我希望我的javascript转到"/ js".

我可以管理我的java依赖项并从Maven部署到AppEngine,或者从Eclipse进行代码和调试(在一些摆弄之后),这一切似乎都有效.我想将我的前端js测试与Maven集成(可能使用javascript-maven-plugin),但这是另一天的任务.