如何在maven模块之间共享javascript代码

use*_*200 5 javascript maven npm webpack

我的maven项目具有以下结构:

  • "base"模块 - 包含共享的java文件 - 应包含共享的javascript文件
  • 模块1 - 使用共享的java文件作为maven依赖 - 应该使用共享的javascript文件?
  • 模块2 - 使用共享的java文件作为maven依赖 - 应该使用共享的javascript文件?

目前,webpack似乎是javascript打包中的新东西,而npm似乎是一个合适的包管理器.所以我尝试了以下内容: - 基本模块使用webpack创建一个npm包(使用npm包) - 模块1和2使用基本模块目标文件夹的相对路径手动安装此包,其中npm包是

为什么我没有使用npm发布? - 无法更新已发布的npm包,因此每个构建都需要创建一个新的版本号 - 它需要一个Internet连接来构建

其他选择? - 我想过使用maven资源插件,但这似乎包含了很多手工工作(文件名,文件夹等)

所以我要求的是:你是否在同一个项目中的maven模块之间共享javascript代码?你是如何实现这一目标的?必须有更好的方法来做到这一点,或者?

如果您想查看我的项目,请查看此处:https://github.com/stefanrinderle/softvis3d

在此先感谢您的回答评论!

Dzm*_*nka 5

基本上要单独重新分发 npm 模块,您应该使用npm publish. 但是,在开发期间,npm 有一个很好的功能npm link,它将您的本地文件夹链接为全局依赖项,并使 npm 使用它而不是从存储库下载。所以,我刚刚添加npm link到您的项目并更改了节点安装目录,因此所有子模块都使用相同的节点实例。通过这种方式,您可以轻松开发模块并在准备好时发布。

基地/ pom.xml:

<plugin>
  <groupId>com.github.eirslett</groupId>
  <artifactId>frontend-maven-plugin</artifactId>
  ...
  <configuration>
    ...
    <installDirectory>../node</installDirectory>
  </configuration>
  <executions>
    <execution>
      <id>npm link</id>
      <goals>
        <goal>npm</goal>
      </goals>
      <configuration>
        <arguments>link</arguments>
      </configuration>
    </execution>
  </executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)

..module/pom.xml

<plugin>
  <groupId>com.github.eirslett</groupId>
  <artifactId>frontend-maven-plugin</artifactId>

  <configuration>
    <installDirectory>../node</installDirectory>
  </configuration>
  <executions>
    <execution>
      <!-- link before install -->
      <id>npm link softvis3d-viewer</id>
      <goals>
        <goal>npm</goal>
      </goals>
      <configuration>
        <arguments>link softvis3d-viewer</arguments>
      </configuration>
    </execution>
    <execution>
      <id>npm install</id>
      <goals>
        <goal>npm</goal>
      </goals>
    </execution>
    ...
  </executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)

..module/package.json

  "devDependencies": {
    ...
    "softvis3d-viewer": "0.0.4-SNAPSHOT"
  },
Run Code Online (Sandbox Code Playgroud)

我的提交中查看详细信息