最佳实践:如何在maven存储库中托管服务器端代码

时间:2009-09-07 18:13:32

标签: java javascript maven-2

将javascript / html / css代码放在maven存储库中的最佳方法是什么,以便java项目可以轻松使用。

有没有办法做到这一点,包含的项目可以很容易地被包含项目“网络可见”?

例如假设我写了一个非常有用的tricks.js文件,将它放在mvn存储库中。

是否可以创建一个web项目,将tricks.js添加为依赖项,然后执行

<script src="/some/thing/tricks.js"/>

导致tricks.js文件被提供?

2 个答案:

答案 0 :(得分:6)

应将外部资源打包到工件中并发布到存储库(为简单起见,使用jar工件,但您可以指定assembly来打包zip,以便明确工件的用途)。 maven-dependency-plugin将jar的内容解压缩到war项目中的指定位置。然后将该文件夹指定为maven-war-plugin的external web resources目录。

以下配置会将my-resources的内容解压缩到target/external-resources目录中,然后在战争中包含该文件夹的内容,就好像它们已在src / main / resources中定义一样。 / p>

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-dependency-plugin</artifactId>
  <executions>
    <execution>
      <id>unpack</id>
      <phase>generate-resources</phase>
      <goals>
        <goal>unpack</goal>
      </goals>
      <configuration>
        <artifactItems>
          <artifactItem>
            <groupId>name.seller.rich</groupId>
            <artifactId>my-resources</artifactId>
            <version>1.0.0</version>
            <type>jar</type>
            <overWrite>false</overWrite>
          </artifactItem>
        </artifactItems>
        <outputDirectory>${project.build.directory}/external-resources</outputDirectory>
        <overWriteReleases>false</overWriteReleases>
      </configuration>
    </execution>
  </executions>
</plugin>
<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-war-plugin</artifactId>
  <version>2.0</version>
  <configuration>
    <webResources>
      <resource>
        <directory>${project.build.directory}/external-resources</directory>
      </resource>
    </webResources>
  </configuration>
</plugin>

答案 1 :(得分:2)

您可以将其打包到jar中,然后通过maven插件解压缩。