如何配置NPM以使用Maven文件夹结构和War部署

德莫里茨

我开始了我的第一个纯前端项目。我想将其部署为Java / Maven。因此,我建立了一个正常的战争项目:

│   package.json
│   pom.xml
│   tsconfig.json
│   typings.json
├───src
│   └───main
│       ├───resources
│       └───webapp
│           │   index.html
│           │
│           ├───app
│           │       app.component.ts
│           │       main.ts
│           │
│           ├───css
│           │       styles.css
│           │
│           └───WEB-INF
│                   web.xml

我的问题是如何将路径设置为index.html /相对于包的源。json?由于这是一个角度/打字稿项目,因此还有一些打字稿特定的东西。但我的希望是在json包中一劳永逸地设置“源”路径?

我也不确定是否要直接在“ webapp”中部署这些东西,因为有编译步骤。因此,欢迎提供有关如何构建用于Maven / War部署的纯前端项目的任何建议。

阿里贝罗

为了将NPM与Maven集成,您可以使用frontend-maven-plugin,我认为这将是您进行编译的绝佳工具

因此,为了一起配置所有内容,您的pom.xml应该如下所示:

<project xmlns="http://maven.apache.org/POM/4.0.0" 
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
                             http://maven.apache.org/xsd/maven-4.0.0.xsd">

    <modelVersion>4.0.0</modelVersion>

    <groupId>group.id</groupId>
    <artifactId>artifact-id</artifactId>
    <version>2.0.14-SNAPSHOT</version>

    <name>Artifact Name</name>

    <packaging>war</packaging>

    <!-- Plug-in definition -->
    <build>
        <plugins>
            <!-- frontend-maven plug-in -->
            <plugin>
                <groupId>com.github.eirslett</groupId>
                <artifactId>frontend-maven-plugin</artifactId>
                <version>0.0.29</version>
                <configuration>
                    <nodeVersion>v5.10.1</nodeVersion>
                    <npmVersion>3.8.6</npmVersion>
                    <installDirectory>target</installDirectory>
                    <workingDirectory>${basedir}</workingDirectory>
                </configuration>
                <executions>
                    <!-- install node & npm -->
                    <execution>
                        <id>install node and npm</id>
                        <goals>
                            <goal>install-node-and-npm</goal>
                        </goals>
                    </execution>

                    <!--npm install -->
                    <execution>
                        <id>npm install</id>
                        <goals>
                            <goal>npm</goal>
                        </goals>
                        <configuration>
                            <arguments>install</arguments>
                        </configuration>
                    </execution>

                    <!-- npm run build -->
                    <execution>
                        <id>npm run build</id>
                        <goals>
                            <goal>npm</goal>
                        </goals>
                        <configuration>
                            <arguments>run build</arguments>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

            <!-- Maven WAR plug-in -->
            <plugin>
                <artifactId>maven-war-plugin</artifactId>
                <configuration>
                    <webXml>src/main/webapp/WEB-INF/web.xml</webXml>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

如您所见,首先我们定义frontend-maven-plugin的用法

  • 我们使用最新的稳定NodeJS版本:v5.10.1;
  • NPM的最新版本:3.8.6;
  • 由于该插件下载并安装NodeJS和NPM,因此需要声明安装目录(installDirectory)。我选择将所有内容存储在Maven的目标目录中。
  • 然后必须定义一个人的工作目录(workingDirectory),基本上是我们package.json所在的目录在您的情况下,它将与pom.xml文件处于同一级别,因此我们为此使用$ {basedir}
  • 接下来,有必要定义执行方式:前两个我认为非常简单;最后一个简单的假设,你里面的package.json,有一个剧本叫目标构建将,例如,拨打browserify,以建立一个命令bundle.js文件:

    "scripts": {
        "build": "browserify src/main/webapp/app.js -o src/main/webapp/modules/bundle.js"
    }
    

    在你的情况,而不是app.js,中的package.json将与您的打字稿文件交互。


最后,定义了Maven WAR插件唯一进行的配置是提及web.xml所在的位置

注意,按照定义,Maven将打包src / main / webapp目录中的所有内容。因此,如果要排除任何文件(或文件夹),则应使用配置参数<packagingExcludes>

<!-- Maven WAR plug-in -->
<plugin>
    <artifactId>maven-war-plugin</artifactId>
    <configuration>
        <webXml>src/main/webapp/WEB-INF/web.xml</webXml>
        <packagingExcludes>app/**</packagingExcludes>
    </configuration>
</plugin>

上面的配置将排除文件夹app

同样,这是一个起点。在这里,您可以使用Maven来自定义构建您的应用程序。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何配置应用程序引擎以使用文件结构中的node_modules文件夹部署您的应用程序?

来自分类Dev

语义ui dist文件夹-不使用npm和/或gulp进行部署

来自分类Dev

Java,gulp和Maven文件夹结构

来自分类Dev

配置文件夹以使用SSL

来自分类Dev

如何配置sencha app build命令以使用自定义的名为app的文件夹?

来自分类Dev

如何将Eclipse和Maven配置为不重复文件夹列表?

来自分类Dev

如何使用Maven(新的带有时间戳的文件夹和最新的文件夹)构建存储?

来自分类Dev

codeigniter配置文件夹结构

来自分类Dev

codeigniter配置文件夹结构

来自分类Dev

将Spring Java配置文件放在Maven文件夹结构中的位置

来自分类Dev

如何在使用 Powershell 转换、调整大小和移动图像时保持文件夹结构

来自分类Dev

使用基于模块的文件夹结构的迁移和种子

来自分类Dev

ASP.NET MVC,AngularJS,Bower和部署站点文件夹结构

来自分类Dev

如何在Shotwell中使用自己的文件夹结构?

来自分类Dev

如何使用虚拟文件夹结构网址

来自分类Dev

如何在Shotwell中使用自己的文件夹结构?

来自分类Dev

如何使用 git 跟踪文件夹结构?

来自分类Dev

如何使用Jetty和Clojure重新部署.war文件?

来自分类Dev

使用grunt和dist项目文件夹进行开发和部署时,如何管理Bower依赖关系?

来自分类常见问题

如何使用Maven将配置文件包含在JAR的“ META-INF / services”文件夹中

来自分类Dev

如何在构建之前使用 npm 删除文件夹

来自分类Dev

您可以使用Javascript生成图像和文件夹结构吗

来自分类Dev

如何使用Powershell和set-acl在文件夹结构和特定扩展名之间复制权限?

来自分类常见问题

Maven-如何使用本地文件夹中的工件?

来自分类Dev

部署(Maven)捆绑包时将配置文件移动到Karaf的etc文件夹中

来自分类Dev

如何仅使用文件名来同步文件夹和子文件夹?

来自分类Dev

Maven:在war版本中将文件夹包含在资源文件夹中

来自分类Dev

Maven:在war版本中将文件夹包含在资源文件夹中

来自分类Dev

如何使用Finder在嵌套文件夹层次结构中创建新文件夹?

Related 相关文章

  1. 1

    如何配置应用程序引擎以使用文件结构中的node_modules文件夹部署您的应用程序?

  2. 2

    语义ui dist文件夹-不使用npm和/或gulp进行部署

  3. 3

    Java,gulp和Maven文件夹结构

  4. 4

    配置文件夹以使用SSL

  5. 5

    如何配置sencha app build命令以使用自定义的名为app的文件夹?

  6. 6

    如何将Eclipse和Maven配置为不重复文件夹列表?

  7. 7

    如何使用Maven(新的带有时间戳的文件夹和最新的文件夹)构建存储?

  8. 8

    codeigniter配置文件夹结构

  9. 9

    codeigniter配置文件夹结构

  10. 10

    将Spring Java配置文件放在Maven文件夹结构中的位置

  11. 11

    如何在使用 Powershell 转换、调整大小和移动图像时保持文件夹结构

  12. 12

    使用基于模块的文件夹结构的迁移和种子

  13. 13

    ASP.NET MVC,AngularJS,Bower和部署站点文件夹结构

  14. 14

    如何在Shotwell中使用自己的文件夹结构?

  15. 15

    如何使用虚拟文件夹结构网址

  16. 16

    如何在Shotwell中使用自己的文件夹结构?

  17. 17

    如何使用 git 跟踪文件夹结构?

  18. 18

    如何使用Jetty和Clojure重新部署.war文件?

  19. 19

    使用grunt和dist项目文件夹进行开发和部署时,如何管理Bower依赖关系?

  20. 20

    如何使用Maven将配置文件包含在JAR的“ META-INF / services”文件夹中

  21. 21

    如何在构建之前使用 npm 删除文件夹

  22. 22

    您可以使用Javascript生成图像和文件夹结构吗

  23. 23

    如何使用Powershell和set-acl在文件夹结构和特定扩展名之间复制权限?

  24. 24

    Maven-如何使用本地文件夹中的工件?

  25. 25

    部署(Maven)捆绑包时将配置文件移动到Karaf的etc文件夹中

  26. 26

    如何仅使用文件名来同步文件夹和子文件夹?

  27. 27

    Maven:在war版本中将文件夹包含在资源文件夹中

  28. 28

    Maven:在war版本中将文件夹包含在资源文件夹中

  29. 29

    如何使用Finder在嵌套文件夹层次结构中创建新文件夹?

热门标签

归档