将javascript / html / css代码放在maven存储库中的最佳方法是什么,以便java项目可以轻松使用。
有没有办法做到这一点,包含的项目可以很容易地被包含项目“网络可见”?
例如假设我写了一个非常有用的tricks.js文件,将它放在mvn存储库中。
是否可以创建一个web项目,将tricks.js添加为依赖项,然后执行
<script src="/some/thing/tricks.js"/>
导致tricks.js文件被提供?
答案 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插件解压缩。