是否有能力构建maven工件,该工件只包含资源但没有源,可以被其他项目重用?
动机如下。我有一个只包含html / css / javascript代码的库。必须将此库作为资源打包到war项目中。至于现在,我用单个pom构建带有资源的web存档。但我能否将html / css / javascript代码分成新工件并在多个战争项目中重复使用?
答案 0 :(得分:9)
使用Maven Overlays。有关更多示例,请参阅Manipulating WAR Overlays。
答案 1 :(得分:1)
您可以使用Maven assembly plugin。
执行此操作答案 2 :(得分:0)
我不认为maven会阻止你将一些资源拼凑在一起,并将其作为Web项目中的依赖项添加。
但是,您需要引用资源的方式会有点奇怪。 我不习惯在WEB-INF / lib中的jar文件中将css样式表加载为java资源。
我想将它们称为普通的Web资源,相对于WAR文件的根目录,而不是通过类加载器。
答案 3 :(得分:0)
这是一个非常简单的测试方法:
$ ls -R
.:
pom.xml src
./src:
main
./src/main:
resources
./src/main/resources:
README.txt content-is-here.txt
$ mvn package
... Maven doing it's thing...
$ unzip -l target/test-1.0-SNAPSHOT.jar
Archive: target/test-1.0-SNAPSHOT.jar
Length Date Time Name
--------- ---------- ----- ----
0 02-25-2010 16:18 META-INF/
123 02-25-2010 16:18 META-INF/MANIFEST.MF
10 02-25-2010 16:18 content-is-here.txt
0 02-25-2010 16:18 README.txt
0 02-25-2010 16:18 META-INF/maven/
0 02-25-2010 16:18 META-INF/maven/group/
0 02-25-2010 16:18 META-INF/maven/group/test/
626 02-25-2010 16:15 META-INF/maven/group/test/pom.xml
106 02-25-2010 16:18 META-INF/maven/group/test/pom.properties
--------- -------
865 9 files
答案 4 :(得分:0)
这可以通过激活资源工件并在validate
阶段将其解压缩到war项目中的src / main / resources来完成。资源pom是微不足道的,但战争pom将包含以下内容:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>unpack</id>
<phase>validate</phase>
<goals>
<goal>unpack</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>my.company</groupId>
<artifactId>resource-artifact</artifactId>
<version>1.0</version>
<overWrite>true</overWrite>
<outputDirectory>src/main/resources</outputDirectory>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>