【问题标题】:best practice: how to host server-side code in the maven repository最佳实践:如何在 Maven 存储库中托管服务器端代码
【发布时间】:2009-09-07 18:13:32
【问题描述】:

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

有没有办法让包含的项目可以轻松地通过包含项目“在网络上可见”?

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

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

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

导致提供 tricks.js 文件?

【问题讨论】:

    标签: java javascript maven-2


    【解决方案1】:

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

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

    <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>
    

    【讨论】:

      【解决方案2】:

      你可以把它打包成jar,然后通过maven插件解压。

      【讨论】:

      • 是的,这是最佳做法。
      • 我在 GWT 中使用这种做法。
      • 虽然我自己从来不需要这样做,但这似乎是 Maven 架构和标准的最佳方法。
      猜你喜欢
      • 1970-01-01
      • 2012-11-26
      • 2015-10-11
      • 2020-07-20
      • 2023-03-13
      • 2010-12-21
      • 2019-10-14
      • 2014-11-25
      • 1970-01-01
      相关资源
      最近更新 更多